【问题标题】:Add a numeric suffix to filenames in windows在 Windows 中为文件名添加数字后缀
【发布时间】:2016-07-15 05:08:26
【问题描述】:

我想将大量文件重命名为 S001S002 等。 我从here 得到这个代码来添加前缀:

for %a in (*.*) do ren "%a" "prefix - %a"

所以我尝试修改它,使变量随for 递增,如下所示:

for /l %x in (1,1,5) do %a in (*.*) do ren "%a" "SQ00%x"

显然这是错误的,我后来读到/l 使用数值而不是文件名,所以%a 没有任何意义(如果我错了,请纠正我)。

所以我想知道如何使用文件夹中文件的文件名在for 循环中增加一个值。

编辑

我现在设法编写了一个可以重命名文件的批处理,并且:

  • 在特定目录中进行操作
  • 具有特定的文件扩展名
  • 告诉您该目录中有多少该扩展名的文件
  • 要求一个新名称,稍后会添加数字后缀
  • 循环更改不同目录中的文件

    ECHO OFF
    
    Setlocal enabledelayedexpansion
    
    :start
    
    cls
    
    echo "%cd%"
    
    echo where are the files?        
    set/p "files=>"        
    cd "%files%"
    
    echo now in:    
    echo "%cd%"
    
    echo files extension:
    set/p "ext=>"
    
    ::amount of files in the directory
    set/a cnt=0    
    for %%a in (*.%ext%) do set /a cnt+=1
    echo File count = %cnt%
    PAUSE
    
    echo new file name:
    set/p "name=>"
    
    set/a Count=1
    for /r %%a in (*.%ext%) do (
    echo !Count!
    ren "%%a" "%name%!Count!.%ext%"
    set /a Count=Count+1
    )
    
    PAUSE
    
    goto start
    

现在的问题是重命名文件的 FOR 循环比目录中的文件数量多了 1 个循环,我不知道为什么

【问题讨论】:

    标签: windows batch-file cmd filenames


    【解决方案1】:
    Setlocal enabledelayedexpansion
    for %%a in (*.*) do (
        set /a Count=Count+1
        echo ren "%%a" "!Count! - %%a"
        )
    

    是一种方式。请参阅set /?setlocal /?

    从 Windows NT 命令外壳

    括号也可用于输入多行命令。如果命令行以一组或多组不平衡括号结束,则假定命令行在下一行继续。如果命令是交互式输入的,shell 会提示输入更多内容,直到所有括号平衡为止。如果命令是脚本的一部分,shell 会读取额外的脚本行,直到所有括号平衡。例如:

    1. C:\>(
    2. More?echo command1
    3. More?echo command2
    4. More?)
    5. command1
    6. command2
    

    第一行只包含一个左括号。 shell 检测到这一点,并提示输入更多信息。接下来,输入两个 ECHO 命令。最后,右括号平衡左括号,命令完成。然后 shell 执行复合命令,该命令执行两个单独的 ECHO 命令。 单个命令不跨越多行命令中的行。物理行的结尾总是终止一个简单的命令(无论是键入的还是在脚本文件中输入的)。请注意在前面的示例中,物理行的末尾是如何终止每个 ECHO 命令的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-24
      • 2021-04-02
      • 1970-01-01
      相关资源
      最近更新 更多