找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 19252|回复: 4

[文件操作] 批处理如何按时间顺序批量重命名文件夹?

[复制链接]
发表于 2023-8-14 00:13:50 | 显示全部楼层 |阅读模式
想将某个目录下的全部文件夹批量按时间顺序重命名,,for循环,起始1,步长1.在重命名之前首先 将文件夹的名字和修改后的名字输入到某个txt目录下,然后再执行命令,再将文件夹内的分卷压缩包xxx.part1.rar xxx.part2.rar....文件的名字命名和文件夹名字一样,1.part1.rar 1.part2.rar,不确定有几个分卷压缩包。有的可能只有一个,就没有xxx.part.rar
不知道这两个命令能同时进行吗还是分开执行   下面这个是python代码,但是文件夹里的分卷压缩包名字改不了另外给我bat批处理代码也可以
  1. # -*- coding: utf-8 -*-

  2. import os

  3. # 设置工作目录
  4. base_directory = '/path/to/your/directory'
  5. txt_log_path = '/path/to/log.txt'

  6. # 获取目录下的所有文件夹并按时间顺序排序
  7. folders = sorted([f for f in os.listdir(base_directory) if os.path.isdir(os.path.join(base_directory, f))])

  8. # 执行重命名操作并记录到txt文件
  9. with open(txt_log_path, 'w', encoding='utf-8') as log_file:
  10.     for i, folder in enumerate(folders, start=1):
  11.         new_name = str(i)
  12.         old_path = os.path.join(base_directory, folder)
  13.         new_path = os.path.join(base_directory, new_name)
  14.         
  15.         # 记录原始名称和新名称到txt文件
  16.         log_file.write(f"{folder} -> {new_name}\n")
  17.         
  18.         # 重命名文件夹
  19.         os.rename(old_path, new_path)
  20.         
  21.         # 对分卷压缩包进行命名操作
  22.         part_index = 1
  23.         while True:
  24.             part_file_old = os.path.join(new_path, f"{folder}.part{part_index}.rar")
  25.             part_file_new = os.path.join(new_path, f"{i}.part{part_index}.rar")
  26.             
  27.             if not os.path.exists(part_file_old):
  28.                 break
  29.             
  30.             os.rename(part_file_old, part_file_new)
  31.             part_index += 1

  32. print("操作完成!")
复制代码
发表于 2023-8-14 10:04:07 | 显示全部楼层
本帖最后由 qixiaobin0715 于 2023-8-14 10:30 编辑

是这样吗?
  1. @echo off
  2. set n=0
  3. setlocal enabledelayedexpansion
  4. (for /f "delims=" %%i in ('dir /b /od /ad') do (
  5.     set /a n+=1
  6.     ren "%%i" "!n!"
  7.     echo,%%i        !n!
  8.     pushd "!n!"
  9.     for /f "tokens=1* delims=." %%j in ('dir /b /a-d *.rar') do (
  10.         ren "%%j.%%k" "!n!.%%k"
  11.     )
  12.     popd
  13. ))>out.txt
  14. pause
复制代码
未测试
 楼主| 发表于 2023-8-14 10:08:00 | 显示全部楼层
回复 2# qixiaobin0715
已经测试成功,感谢大佬
 楼主| 发表于 2023-8-14 10:24:04 | 显示全部楼层
回复 2# qixiaobin0715
大佬能不能把文件夹名字命名前后将名字输入到txt文中,这样方便查找资源
发表于 2023-8-14 10:30:56 | 显示全部楼层
回复 4# bluesky123
代码已修改

评分

参与人数 1技术 +1 收起 理由
bluesky123 + 1 厉害

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 14:31 , Processed in 0.018967 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表