用于重命名多个文件夹的.bat文件

New*_*ies 6 windows cmd batch-file

我正在尝试编写批处理脚本来重命名多个文件夹.我想做类似下面的事情:通过在文件夹名称的末尾附加我的名字来重命名"Workspace"文件夹下的所有文件夹

例如,重命名:

Workspace/RiskFolder
Workspace/PNLFolder
Run Code Online (Sandbox Code Playgroud)

至:

Workspace/RiskFolder_myname
Workspace/PNLFolder_myname
Run Code Online (Sandbox Code Playgroud)

这可能吗?

小智 15

您可以使用for循环遍历每个目录并重命名,如下所示:

for /D %%f in (C:\path\to\Workspace\*) do rename "%%f" "%%~nxf_myname"
Run Code Online (Sandbox Code Playgroud)

我在Windows 7上对此进行了测试,但它应该至少可以用于Windows XP.

这样做:对于路径中的每个目录(在括号内),将目录名称分配给变量%%f,然后将目录重命名为%%f所需格式的名称(附加您的名称).%%f保存完整的路径名,这对于rename命令的第一个参数是合适的,但对于第二个参数,我们只需要文件名+扩展名,因此~nx修饰符前置于我们的变量名.

顺便说一下,当for在命令行上使用此循环(而不是批处理文件的一部分)时,您只想使用一个%而不是%%作为变量名.例如,for %f in...而不是上面.

有关详细信息,请参阅Microsoft的以下参考资料: