Board logo

标题: [文本处理] 批处理怎么把多个文件夹里面的所有文件重命名? [打印本页]

作者: superhu    时间: 2021-6-30 22:29     标题: 批处理怎么把多个文件夹里面的所有文件重命名?

有的文件夹里面可能会有子文件夹,有的里面没有,需要把里面的所有文件重命名。比如重命名格式:批处理111、批处理222、批处理333.......

麻烦高手指点一下
作者: idwma    时间: 2021-6-30 22:43

本帖最后由 idwma 于 2021-6-30 22:47 编辑

@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir/b/s/a-d z:\学习资料') do (
set/a a+=1
ren "%%i" %%~n!a!!a!!a!xi
)
作者: superhu    时间: 2021-6-30 23:21

回复 2# idwma


    大佬 这个不行啊 重命名的文件不但都是乱码,连文件的扩展名也没有了
作者: idwma    时间: 2021-6-30 23:40

本帖最后由 idwma 于 2021-6-30 23:41 编辑

回复 3# superhu


    粗心大意了尴尬
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir/b/s/a-d' z:\) do (
set/a a+=1
ren "%%i" "%%~ni!a!!a!!a!%%~xi"
)
pause
作者: qixiaobin0715    时间: 2021-7-1 06:45

需求没有说清楚:
1.原文件名与重命名后的文件名有无联系
2.后面数字按顺序111,222...999,如果是10的话,是否是101010
最好列举真实文件名——对应重命名后的文件名
作者: superhu    时间: 2021-7-1 21:52

回复 5# qixiaobin0715


    回大佬:
1、原文件名与重命名后的文件名没有联系,只重命名,不要改变文件扩展名。
2、重命名后面的数字+1就行了,没有什么特殊要求。

期待大佬解惑
作者: qixiaobin0715    时间: 2021-7-1 22:08

本帖最后由 qixiaobin0715 于 2021-7-1 22:10 编辑

假设你说的多个文件夹在D:\test下
  1. @echo off
  2. set testfolder=D:\test
  3. setlocal enabledelayedexpansion
  4. cd /d %testfolder%
  5. for /f "delims=" %%a in ('dir /b /s /a-d') do (
  6.     set /a n+=1
  7.     ren "%%a" "批处理!n!%%~xa"
  8. )
  9. pause
复制代码

作者: superhu    时间: 2021-7-2 15:00

回复 7# qixiaobin0715


   感谢大佬的帮助




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2