[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

想将某个目录下的全部文件夹批量按时间顺序重命名,,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("操作完成!")
复制代码

回复 4# bluesky123
代码已修改
1

评分人数

TOP

回复 2# qixiaobin0715
大佬能不能把文件夹名字命名前后将名字输入到txt文中,这样方便查找资源

TOP

回复 2# qixiaobin0715
已经测试成功,感谢大佬

TOP

本帖最后由 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
复制代码
未测试

TOP

返回列表