如何为所有文件夹和子文件夹添加前缀?(Windows)

如何为所有文件夹和子文件夹添加前缀?(Windows)

关于:如何为文件夹中的所有文件和文件夹添加前缀?(Windows)

我正在尝试创建一个 .bat 文件,它将使用项目编号前缀重命名预定义的文件夹结构,例如项目名称/管理员 - 变为 - 7000-01 项目名称/7000-01 管理员。以下是我目前所拥有的:

@Echo off
pushd
for /d %%g in (*) do ren "%%g" "7000-01 %%g"

它只适用于顶层,但我希望它重命名所有子文件夹(包括上面例如“管理员”级别以下的子文件夹)。

我在这里读到——https://ss64.com/nt/for_d.html使用for /d /r应该可以递归重命名所有子文件夹,但我无法让它工作。

仅供参考pushd,使用 .bat 名称保持不变。

答案1

你离答案很近了!正确命令是:

for /r /d %%g in (*) do ren "%%g" "7000-01 %%~ng"

完整解释:

正如您提到的,您必须使用for /d /r递归方式工作。(https://ss64.com/nt/for_d.html

ren检查or命令的语法rename表明需要非常具体的语法:

>ren /?
Renames a file or files.

RENAME [drive:][path]filename1 filename2.
REN [drive:][path]filename1 filename2.

Note that you cannot specify a new drive or path for your destination file.

for 循环内的原始命令正在评估ren "FULL_PATH" "FULL_PATH",实际上应该是ren "FULL_PATH" "SIMPLE_FILE_NAME"

要获取不带扩展名或路径的文件名,请使用~n变量 (https://ss64.com/nt/syntax-args.html

相关内容