首页 文章

使用批处理文件重命名文件夹中的文件

提问于
浏览
0

我正在尝试在特定文件夹中重命名具有特定格式的文件 . 我这样做是通过创建一个带有文件名的文本文件并在循环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

1 回答

  • 1

    在cmd脚本中编写循环时,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不同 .

相关问题