Batch file 用于重命名文件夹参数中文件的批处理脚本

Batch file 用于重命名文件夹参数中文件的批处理脚本,batch-file,Batch File,我找不到任何解释如何循环通过作为参数传递的文件夹并重命名每个文件的引用。我所看到的所有示例都假设脚本运行在将重命名文件的文件夹中,或者对循环中的文件夹路径进行硬编码。我该怎么做?下面是我尝试做的一个例子: for /f %%a in (%1) do call :RenameFiles :RenameFiles Rename %%a "new filename" Goto :EOF 以下内容向指定为命令行参数的目录中的每个文件添加前缀“重命名”: for %%F in (%~1\*) do r

我找不到任何解释如何循环通过作为参数传递的文件夹并重命名每个文件的引用。我所看到的所有示例都假设脚本运行在将重命名文件的文件夹中,或者对循环中的文件夹路径进行硬编码。我该怎么做?下面是我尝试做的一个例子:

for /f %%a in (%1) do call :RenameFiles

:RenameFiles
Rename %%a "new filename"
Goto :EOF
以下内容向指定为命令行参数的目录中的每个文件添加前缀“重命名”:

for %%F in (%~1\*) do ren "%%~F" "renamed-%%~nxF"
编辑无限循环问题的最简单解决方案是分两个阶段工作:

  • 准备操作列表
  • 执行计划
  • -


    如果您的目标是重命名文件夹中的许多文件,请考虑使用ReNeMaster。这很有效,但我想通过在前面加上文件夹来重命名文件。例如:/Fall 2009/Notes.txt在我使用时会变成/Fall 2009/Fall 2009-Notes.txt:do ren“%%~F”“%%~1-%%~nxF”如果文件夹名称按字母顺序排在文件夹中其他文件之前,它就会陷入循环。例如:在一个名为“税务表格”的文件夹中,有两个名为“Fall 2009.pdf”和“Winter 2008.pdf”的文件,2009年秋季将被重命名为“Tax Forms Fall 2009”,然后是“Tax Forms Tax Forms Fall 2009”,如此循环不断。如何解决这个问题?
    set OpList=%TEMP%\%~n0%RANDOM%.bat
    copy nul "%OpList%"
    for %%F in (%~1\*) do echo ren "%%~F" "renamed-%%~nxF" >> "%OpList%"
    call "%OpList%"
    del "%OpList%"