2013-08-26 138 views
0

我试图用特定文件夹中的某种格式重命名文件。我会通过创建一个带有文件名的文本文件并在循环语句中引用该文本文件来完成此操作。当我在cmd中逐行运行命令时,它工作正常,但是当我尝试作为批处理文件运行时,它不起作用。批处理文件保存在我要完成操作的文件夹中,因此我假设我不需要声明目录。任何帮助将非常感激!使用批处理文件重命名文件夹中的文件

dir > file.txt 
for /f "tokens=1,2,3,4 delims=_." %i in (file.txt) do ren "%i_%j_%k.%l" "%date:~10%%date:~4,2%%date:~7,2%_%time:~0,2%h%time:~3,2%m%time:~6,2%s_%k.%l" 

:END 

回答

1

当在CMD脚本循环的变量写入(例如:%I)需要使它成为能与一个额外%转义:

for /f "tokens=1,2,3,4 delims=_." %%i in (file.txt) do ren "%%i_%%j_%%k.%%l" "%date:~10%%date:~4,2%%date:~7,2%_%time:~0,2%h%time:~3,2%m%time:~6,2%s_%%k.%%l" 

要了解更多如何为作品类型for /?以cmd为单位。

有趣的部分:

要使用FOR命令在批处理程序,指定%%变量而不是%变量的 。变量名称区分大小写,所以%i与%I的 不同。

+0

我的错误,忘了%。现在工作很好。谢谢!!! – AsEeD

+0

@AsEeD很高兴听到!如果这是一个好的和正确的,你可能想把它作为答案。 – NiKiZe

+0

完成。再次感谢! – AsEeD

相关问题