我正在尝试编写批处理脚本来重命名多个文件夹.
我想做类似下面的事情:
通过在文件夹名称的末尾附加我的名称,重命名“Workspace”文件夹下的所有文件夹
我想做类似下面的事情:
通过在文件夹名称的末尾附加我的名称,重命名“Workspace”文件夹下的所有文件夹
例如,重命名:
Workspace/RiskFolder Workspace/PNLFolder
至:
Workspace/RiskFolder_myname Workspace/PNLFolder_myname
这可能吗?
您可以使用for循环遍历每个目录并重命名,如下所示:
for /D %%f in (C:\path\to\Workspace\*) do rename "%%f" "%%~nxf_myname"
我在Windows 7上对此进行了测试,但它应该至少可以用于Windows XP.
这样做:对于路径中的每个目录(括号内),将目录名称分配给变量%% f,然后将目录%% f重命名为所需格式的名称(附加您的名称). %% f保存完整路径名,这对于重命名命令的第一个参数是合适的,但对于第二个参数,我们只需要文件扩展名,因此~nx修饰符前置于我们的变量名.
顺便说一下,当在命令行上使用这个for循环(而不是批处理文件的一部分)时,你只想使用一个%而不是%%作为变量名.例如.对于%f而不是以上.
有关详细信息,请参阅Microsoft的以下参考资料:
> http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/batch.mspx?mfr=true
> http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/for.mspx?mfr=true