【问题标题】:rename multiple files in order with command prompt使用命令提示符按顺序重命名多个文件
【发布时间】:2015-05-03 09:45:17
【问题描述】:

我有一些不同名称的文件。

Leviathan.txt、Dragon.txt等

我想把它变成一个数字开头

1.txt、2.txt、3.txt、4.txt等

如何使用For和可以传递文件夹中文件数量的函数像其他语言一样执行?

到目前为止,我知道的代码是 dir 和 ren。我现在卡住了。

ren *.txt 1.txt

【问题讨论】:

    标签: command-line command-prompt


    【解决方案1】:

    下一个代码 sn-p 可以为您工作(使用 .bat 扩展名保存);请注意,rename 命令仅出于调试目的而回显:

    @echo off
    SETLOCAL enableextensions enabledelayedexpansion
    set /A "ii=0"
    pushd "working_directory_here"
    for /F "delims=" %%G in ('dir /B /ON "*.txt" 2^>NUL') do (
      set /A "ii+=1"
      echo ren "%%~G" "!ii!%%~nxG"
    )
    popd
    

    如果您坚持单行(在正确的工作目录中启动):

    cmd /E:ON /V:ON /K (@echo off^&set /A "ii=0" ^>NUL^&for /F "delims=" %G in ('dir /B /ON "*.txt" 2^^^>NUL') do (set /A "ii+=1" ^>nul^&echo ren "%~G" "!ii!%~nxG"))^&exit
    

    资源(必读):

    【讨论】:

      【解决方案2】:

      假设您现有的文件都没有命名为 n.txt 之类的名称,其中 n 是一个数字,然后只需 CD 到您的文件夹,然后从命令行运行以下命令:

      for "tokens=1* delims=:" %A in ('dir /b *.txt^|findstr /n "^"') do @ren "%B" "%A.txt"
      

      如果您在批处理脚本中使用该命令,则将百分比加倍。

      编辑

      我忘记了我的JREN.BAT utility - 一个正则表达式重命名实用程序。它是纯脚本(混合 JScript/batch),可以在 XP 以后的任何 Windows 机器上本地运行。

      JREN 具有将数字合并到每个新文件名中的内置功能,并且作为额外的好处,它可以用零填充数字,以便 DIR 命令按数字顺序列出文件。默认数字宽度为 3 位,因此文件将类似于“001.txt”、“002.txt”、...“010.txt”、...“100.txt”等。

      jren "^.*" "$n+'.txt'" /j /fm *.txt
      

      /NPAD 选项指定最小数字宽度,因此 NTAB 1 不产生填充,这是原始问题所要求的。

      jren "^.*" "$n+'.txt'" /j /fm *.txt /npad 1
      

      由于 JREN 本身就是一个批处理脚本,如果您将命令放在另一个批处理脚本中,则必须使用 CALL JREN。

      可通过命令提示符通过jren /? | more 获得完整文档。我的控制台窗口配置了一个大缓冲区,因此我可以向后滚动查看之前的输出,而且我不会费心将帮助传递给 MORE。

      【讨论】:

        猜你喜欢
        • 2017-08-09
        • 1970-01-01
        • 1970-01-01
        • 2017-04-10
        • 2011-11-09
        • 2017-09-09
        • 1970-01-01
        • 2013-02-26
        • 1970-01-01
        相关资源
        最近更新 更多