【问题标题】:Renaming files in folder using batch file使用批处理文件重命名文件夹中的文件
【发布时间】:2013-08-26 16:25:22
【问题描述】:

我正在尝试重命名特定文件夹中特定格式的文件。我会通过创建一个带有文件名的文本文件并在循环 for 语句中引用该文本文件来做到这一点。当我在 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

【问题讨论】:

    标签: for-loop batch-file cmd dir


    【解决方案1】:

    在 cmd 脚本中编写 for 循环时,for 变量(例如:%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"
    

    要了解更多工作原理,请在 cmd 中键入 for /?

    有趣的部分:

    要在批处理程序中使用 FOR 命令,请指定 %%variable % 变量。变量名区分大小写,因此 %i 不同 来自 %I。

    【讨论】:

    • @AsEeD 很高兴听到这个消息!如果这是正确且正确的,您可能希望将其标记为答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-26
    • 2011-03-02
    • 1970-01-01
    • 2013-04-22
    • 2019-05-25
    • 1970-01-01
    相关资源
    最近更新 更多