在Dosbatch file中重命名多个文件

我想重新命名文件夹* .txt中的所有文件,所以结果将是“1.txt”,“2.txt”和“3.txt”,….

我怎么能这样做?

以下可能会完成您正在寻找的东西。 它使用for循环遍历文本文件,并对批处理文件的另一位进行“调用”,以便对变量进行重命名和增量操作。

编辑将数学操作更改为由Andriy建议的清洁解决方案。

 @echo off set i=1 for %%f in (*.txt) do call :renameit "%%f" goto done :renameit ren %1 %i%.txt set /A i+=1 :done 

首先制作一个目录列表:

 dir /b *.txt > myfile.cmd 

然后启动UltraEdit( http://www.ultraedit.com/ )并打开文件。

然后进入列模式,选择所有行,并:

  • 在每一行的开头插入“RENAME”
  • 在每一行的末尾插入“.TXT”(如果你有很长的行,一定要把它放得太远)
  • 在.TXT之前插入一个数字(请参见菜单中的列/插入号码)

我想重新命名文件夹* .txt中的所有文件,所以结果将是“1.txt”,“2.txt”和“3.txt”,….

我怎么能这样做?

 ::Setup the stage... SETLOCAL ENABLEDELAYEDEXPANSION SET folder=C:\This\Is\The\Folder SET count=1 ::Action CD "%folder%" FOR %%F IN ("*.txt") DO ( MOVE "%%F" "!count!.txt" SET /a count=!count!+1 ) ENDLOCAL 

速记

 SETLOCAL ENABLEDELAYEDEXPANSION SET count=1 FOR %%F IN (C:\Path\To\File\*.txt) DO MOVE "%%~fF" "%%~dpF!count!.txt" & SET /a count=!count!+1 ENDLOCAL 

所以如果你的文件夹包含cat.txt,dog.txt,bird.txt,ninjaturtle.txt,它会输出1.txt,2.txt,3.txt,4.txt。