【问题标题】:How to rename files with list of names using command prompt?如何使用命令提示符重命名具有名称列表的文件?
【发布时间】:2015-01-22 12:57:26
【问题描述】:

我有一个包含多个文件的文件夹。所有文件名如下:

"1 зелен.doc"
"2 будда.doc"
"3 конфуций.doc"

所有文件都按名称开头的第一个数字的顺序排列。 我有一个文件名列表,包含在文本文件中。文本文件中的每一行也是按顺序排列的。因此,第一行是第一个文件名的名称,第二行是第二个文件名,依此类推。 如何使用命令提示符重命名文件?

非常感谢!

【问题讨论】:

  • 这对我来说是俄语! :)
  • 对不起,我从来没有学过英语
  • 我的意思是,文件名! ;)

标签: batch-file command-line rename file-rename batch-rename


【解决方案1】:

这个问题已经很久了,但也许它可能对某人有用(像我一样,今天 2020 年,我试图做同样的事情)。 您可以在 Excel 上创建一个工作表,其中第一列“Rem”第二列是文件名,第三列是每个文件的新名称。然后复制这三列并粘贴到 CMD(MS-DOS 命令提示符)中就完成了。

Excel应该是这样的:

rem old-name.txt new-name.txt

您必须非常小心,旧名称和新名称都不能有空格,我所做的是用“--”替换(使用任何更改名称的程序)空格,然后将它们放回去。

我希望这对某人有用。

【讨论】:

    【解决方案2】:
    @echo off
    setlocal EnableDelayedExpansion
    
    rem The list of filenames will be read from redirected Stdin
    < filenames.txt (
    
       rem Process the files via FOR command
       for %%a in (*.*) do (
    
          rem Read the next name from the list
          set /P name=
    
          rem Rename the file
          ren "%%a" "!name!"
    
       )
    )
    

    【讨论】:

    • 我比我更喜欢这个。太棒了!
    • 小心排序的数字。目录列表将“11 xxxx”排在“9 xxxx”之前。这可能会导致名称不匹配。
    • 这个太棒了!它完成了它的工作。完美的!非常感谢,Aacini!
    • @dbenham 是的,你是对的!重命名过程中出现错误,因为文件名的顺序错误。 1,然后 11,然后只有 2...
    • @ЄвгенЄвтушенко - 我的JSORT.BAT utility 有一个简单的解决方法。将 FOR 循环更改为:for /f "delims=" %%a in ('dir /b /a-d^|jsort /n') do ...
    【解决方案3】:

    假设文件名列表与目录列表完全对应,您可以通过将文本文件的内容放入数组中,将目录列表放入另一个数组中,然后使用 for /L 循环遍历两个数组,如下所示:

    @echo off
    setlocal enabledelayedexpansion
    
    set "count=0"
    
    for /f "delims=" %%I in (textfile.txt) do (
        set "to[!count!]=%%I"
        set /a count+=1
    )
    
    set "count=0"
    
    for %%I in (*.doc) do (
        set "from[!count!]=%%I"
        set /a count+=1
    )
    
    for /L %%I in (0,1,!count!) do (
        if exist "!from[%%I]!" (
            echo ren "!from[%%I]!" "!to[%%I]!"
        )
    )
    

    将此脚本保存到.bat 文件并运行它。当您对结果满意时,删除ren 之前的echo

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-19
      • 2020-12-03
      • 1970-01-01
      • 2017-09-09
      • 2013-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多