在Windows中递归地批量重命名(添加后缀/前缀)文件

在Windows中递归地批量重命名(添加后缀/前缀)文件,windows,batch-file,recursion,command-line-interface,file-rename,Windows,Batch File,Recursion,Command Line Interface,File Rename,我有一个包含多个子文件夹的文件夹,其中包含更多子文件夹。每个文件夹都有许多文件 我想通过添加一些后缀来重命名所有文件 例如: 原件:FileName1.ext 最终版本:Suf_文件名1.ext 要执行此功能,请联机找到此命令 `FOR /R %x IN (*) DO ren "%x" Suf_*` 但这将替换原始文件名中的初始字符 像 原件:FileName1.ext 最终版本:Suf_Name.ext (请注意,它已删除初始文件名中的初始字符) 请建议对上述命令进行更改/修改, 或执行该

我有一个包含多个子文件夹的文件夹,其中包含更多子文件夹。每个文件夹都有许多文件

我想通过添加一些后缀来重命名所有文件

例如:
原件:FileName1.ext
最终版本:Suf_文件名1.ext

要执行此功能,请联机找到此命令

 `FOR /R %x IN (*) DO ren "%x" Suf_*`
但这将替换原始文件名中的初始字符 像
原件:FileName1.ext
最终版本:Suf_Name.ext

(请注意,它已删除初始文件名中的初始字符)

请建议对上述命令进行更改/修改, 或执行该功能的其他命令


提前谢谢

使用
for
命令迭代一组文件时,可替换参数(
%x
在示例中)包含对该文件的引用

当您在
do
子句中包含的命令中使用
%x
时,此参数将替换为正在处理的文件的信息,默认情况下为文件的名称和扩展名(对于
使用简单的
时)或具有完整路径的文件(对于/R
使用递归
时),但是你可以决定并改变你想要使用的信息。可替换参数允许使用某些修饰符(如果执行/?的
,则可以看到完整列表)

在您的例子中,对于重命名掩码,您需要引用的文件的名称和扩展名(我已使用
%F
更改了
%x
,因此语法更清晰)

你的命令可能是

for /R %F in (*) do echo ren "%F" "Suf_%~nxF"
  • 注意:命令中的
    echo
    只是一种调试习惯。在更改任何内容之前,首先显示要执行的命令以进行控制台操作。如果输出看起来正确,那么我们只需删除
    echo
    ,然后再次运行该命令
请记住,如果要在批处理文件中使用该命令,则需要将可替换参数的
中的百分号加倍,以将其转义。在批处理文件中,上一个命令将

for /R %%F in (*) do echo ren "%%F" "Suf_%%~nxF"

以下是一些基于以下答案的答案
对于(*)中的/R%x,请您务必“%x”Suf\ux%~nxx”
非常感谢您的兄弟!!
for /R %%F in (*) do echo ren "%%F" "Suf_%%~nxF"