File 如何使用批处理文件将文件夹中的文件重命名为foldername
你们谁能帮我解决一个问题,我有很多同名的文件,放在sperate文件夹中。 文件夹以数字命名,但其中的文件名为index.XXXX-其中XXXX可以是.jpg或.html或.pdf。 我想制作一个“程序”,可以将所有“索引”文件重命名为与其所在文件夹相同的名称。 文件夹以6位数字命名-所有不同。 之后,我希望已经完成,然后我想把所有重命名的文件移动到一个新的文件夹,这样我将更容易看到整个内容。期待阅读您的答案File 如何使用批处理文件将文件夹中的文件重命名为foldername,file,batch-file,rename,move,directory,File,Batch File,Rename,Move,Directory,你们谁能帮我解决一个问题,我有很多同名的文件,放在sperate文件夹中。 文件夹以数字命名,但其中的文件名为index.XXXX-其中XXXX可以是.jpg或.html或.pdf。 我想制作一个“程序”,可以将所有“索引”文件重命名为与其所在文件夹相同的名称。 文件夹以6位数字命名-所有不同。 之后,我希望已经完成,然后我想把所有重命名的文件移动到一个新的文件夹,这样我将更容易看到整个内容。期待阅读您的答案 @Echo OFF FOR /D /R %%# in (*) DO ( PU
@Echo OFF
FOR /D /R %%# in (*) DO (
PUSHD "%%#"
FOR %%@ in ("index*") DO (
Echo Ren: ".\%%~n#\%%@" "%%~n#%%~x@"
Ren "%%@" "%%~n#%%~x@"
)
POPD
)
Pause&Exit
已测试的文件夹结构:
c:\sourcedir\index.pdf not 6-digit dir
c:\sourcedir\000000\index.jpg
c:\sourcedir\000009\index.css extension not specified
c:\sourcedir\000009\index.html
c:\sourcedir\000009\index.jpg
c:\sourcedir\000009\index.pdf
c:\sourcedir\000009\index.txt extension not specified
c:\sourcedir\010+39\index.txt not 6-digit dir
c:\sourcedir\12345\index.jpg not 6-digit dir
c:\sourcedir\1234567\index.jpg not 6-digit dir
c:\sourcedir\123x56\index.jpg
c:\sourcedir\50000-0000\index.jpg not 6-digit dir
c:\sourcedir\5000000000\index.jpg not 6-digit dir
c:\sourcedir\999-99\index.jpg not 6-digit dir
c:\sourcedir\999999\index.jpg
c:\sourcedir\a\index.jpg not 6-digit dir
c:\sourcedir\yellow\index.jpg not 6-digit dir
输出:
获取“index.*”文件
筛选指定的扩展名
查找直接目录名
检查长度是否不超过6个字符
尝试将变量设置为1000000..1999999(如果为6位数字名称)
如果成功回显,请使用move命令remove ECHO关键字执行移动
注释测试结构:
c:\sourcedir\index.pdf not 6-digit dir
c:\sourcedir\000000\index.jpg
c:\sourcedir\000009\index.css extension not specified
c:\sourcedir\000009\index.html
c:\sourcedir\000009\index.jpg
c:\sourcedir\000009\index.pdf
c:\sourcedir\000009\index.txt extension not specified
c:\sourcedir\010+39\index.txt not 6-digit dir
c:\sourcedir\12345\index.jpg not 6-digit dir
c:\sourcedir\1234567\index.jpg not 6-digit dir
c:\sourcedir\123x56\index.jpg
c:\sourcedir\50000-0000\index.jpg not 6-digit dir
c:\sourcedir\5000000000\index.jpg not 6-digit dir
c:\sourcedir\999-99\index.jpg not 6-digit dir
c:\sourcedir\999999\index.jpg
c:\sourcedir\a\index.jpg not 6-digit dir
c:\sourcedir\yellow\index.jpg not 6-digit dir
结果:
MOVE "c:\sourcedir\000000\index.jpg" "c:\destdir\000000.jpg"
MOVE "c:\sourcedir\000009\index.html" "c:\destdir\000009.html"
MOVE "c:\sourcedir\000009\index.jpg" "c:\destdir\000009.jpg"
MOVE "c:\sourcedir\000009\index.pdf" "c:\destdir\000009.pdf"
MOVE "c:\sourcedir\999999\index.jpg" "c:\destdir\999999.jpg"
如果您想让GUI完成上述所有操作,请使用 打开它,浏览到你的文件夹。现在选中“选择”选项卡中的“子文件夹”选项。文件夹下的所有文件都将列出。在浏览器中选择文件 在“文件”选项卡中,将第一个选项从“保留”切换到“删除”。然后转到“附加文件夹名称”选项卡,并为属性名称设置选项前缀。单击重命名完成
这样做的好处是,它向您显示了文件将被重命名为的预览。我同意Brandon的观点,即批量文件重命名是在Windows下用目录名重命名文件/为文件添加后缀的好方法
要将所有重命名的文件复制到公共目录,请使用Windows资源管理器搜索所有带有通配符(例如readme*.txt)的文件名。然后选择所有找到的文件,选择复制,导航到目标目录,然后粘贴。我的解释是所有索引。*文件都将被处理。Fiberflux必须确认。我尝试了这个解决方案,但什么也没发生。可能是因为一些文件夹实际上是7位数字。Elektro Hacker的解决方案工作正常,但没有移动文件。当然,在Ren%%@%%~n%%~n%%~x@*C:\destination\行之后添加一个move%%~n%%~x@行,确保在目标中写入最后一个反斜杠apth:C:\Path\GOOD C:\Path BADI用move完成了这项任务。。。但由于我之前使用的其他命令,它无法工作。是否有只移动重命名文件的命令?它是特定于操作系统的。POSIX系统和Windows one上的不同。
c:\sourcedir\index.pdf not 6-digit dir
c:\sourcedir\000000\index.jpg
c:\sourcedir\000009\index.css extension not specified
c:\sourcedir\000009\index.html
c:\sourcedir\000009\index.jpg
c:\sourcedir\000009\index.pdf
c:\sourcedir\000009\index.txt extension not specified
c:\sourcedir\010+39\index.txt not 6-digit dir
c:\sourcedir\12345\index.jpg not 6-digit dir
c:\sourcedir\1234567\index.jpg not 6-digit dir
c:\sourcedir\123x56\index.jpg
c:\sourcedir\50000-0000\index.jpg not 6-digit dir
c:\sourcedir\5000000000\index.jpg not 6-digit dir
c:\sourcedir\999-99\index.jpg not 6-digit dir
c:\sourcedir\999999\index.jpg
c:\sourcedir\a\index.jpg not 6-digit dir
c:\sourcedir\yellow\index.jpg not 6-digit dir
MOVE "c:\sourcedir\000000\index.jpg" "c:\destdir\000000.jpg"
MOVE "c:\sourcedir\000009\index.html" "c:\destdir\000009.html"
MOVE "c:\sourcedir\000009\index.jpg" "c:\destdir\000009.jpg"
MOVE "c:\sourcedir\000009\index.pdf" "c:\destdir\000009.pdf"
MOVE "c:\sourcedir\999999\index.jpg" "c:\destdir\999999.jpg"