标题: [文件操作] 批处理如何按时间顺序批量重命名文件夹? [打印本页]
作者: bluesky123 时间: 2023-8-14 00:13 标题: 批处理如何按时间顺序批量重命名文件夹?
想将某个目录下的全部文件夹批量按时间顺序重命名,,for循环,起始1,步长1.在重命名之前首先 将文件夹的名字和修改后的名字输入到某个txt目录下,然后再执行命令,再将文件夹内的分卷压缩包xxx.part1.rar xxx.part2.rar....文件的名字命名和文件夹名字一样,1.part1.rar 1.part2.rar,不确定有几个分卷压缩包。有的可能只有一个,就没有xxx.part.rar
不知道这两个命令能同时进行吗还是分开执行 下面这个是python代码,但是文件夹里的分卷压缩包名字改不了另外给我bat批处理代码也可以- # -*- coding: utf-8 -*-
-
- import os
-
- # 设置工作目录
- base_directory = '/path/to/your/directory'
- txt_log_path = '/path/to/log.txt'
-
- # 获取目录下的所有文件夹并按时间顺序排序
- folders = sorted([f for f in os.listdir(base_directory) if os.path.isdir(os.path.join(base_directory, f))])
-
- # 执行重命名操作并记录到txt文件
- with open(txt_log_path, 'w', encoding='utf-8') as log_file:
- for i, folder in enumerate(folders, start=1):
- new_name = str(i)
- old_path = os.path.join(base_directory, folder)
- new_path = os.path.join(base_directory, new_name)
-
- # 记录原始名称和新名称到txt文件
- log_file.write(f"{folder} -> {new_name}\n")
-
- # 重命名文件夹
- os.rename(old_path, new_path)
-
- # 对分卷压缩包进行命名操作
- part_index = 1
- while True:
- part_file_old = os.path.join(new_path, f"{folder}.part{part_index}.rar")
- part_file_new = os.path.join(new_path, f"{i}.part{part_index}.rar")
-
- if not os.path.exists(part_file_old):
- break
-
- os.rename(part_file_old, part_file_new)
- part_index += 1
-
- print("操作完成!")
复制代码
作者: qixiaobin0715 时间: 2023-8-14 10:04
本帖最后由 qixiaobin0715 于 2023-8-14 10:30 编辑
是这样吗?- @echo off
- set n=0
- setlocal enabledelayedexpansion
- (for /f "delims=" %%i in ('dir /b /od /ad') do (
- set /a n+=1
- ren "%%i" "!n!"
- echo,%%i !n!
- pushd "!n!"
- for /f "tokens=1* delims=." %%j in ('dir /b /a-d *.rar') do (
- ren "%%j.%%k" "!n!.%%k"
- )
- popd
- ))>out.txt
- pause
复制代码
未测试
作者: bluesky123 时间: 2023-8-14 10:08
回复 2# qixiaobin0715
已经测试成功,感谢大佬
作者: bluesky123 时间: 2023-8-14 10:24
回复 2# qixiaobin0715
大佬能不能把文件夹名字命名前后将名字输入到txt文中,这样方便查找资源
作者: qixiaobin0715 时间: 2023-8-14 10:30
回复 4# bluesky123
代码已修改
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |