批处理文件在文件夹和子文件夹中重命名,将当前目录添加为文件名的前缀

时间:2016-06-23 13:01:05

标签: batch-file for-loop cmd

我想有一个Windows批处理文件,它为批处理文件所在的同一级别的所有文件和子文件夹中的所有文件提供前缀。前缀是包含批处理文件的文件夹名称。我有一个工作代码,但它只在同一文件夹级别重命名docx文件。

@echo off
for %%* in (.) do set CurrDirName1=%%~n*
FOR /f "delims=" %%F IN ('DIR /a-d /b *.docx')  DO (RENAME "%%F" "%CurrDirName1%-%%F")

2 个答案:

答案 0 :(得分:1)

@echo off
for %%* in (.) do set CurrDirName1=%%~n*
FOR /r "delims=" %%F IN ('DIR /a-d /b *.*')  DO (RENAME "%%F" "%CurrDirName1%-%%F")

使用此

答案 1 :(得分:1)

...你就在附近。将/s参数添加到dir以包含子目录,并使用~nx修饰符作为rename命令的文件名+扩展名(%%F将包含路径和{{ 1}}不喜欢目的地(只需要rename))。

filename.extension