在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"