Command line 在命令提示下按顺序重命名多个文件

Command line 在命令提示下按顺序重命名多个文件,command-line,command-prompt,Command Line,Command Prompt,我有一些不同名字的文件 Leviathan.txt、Dragon.txt等 我想把它变成一个数字 1.txt、2.txt、3.txt、4.txt等 如何像其他语言一样使用For和函数传递文件夹中的文件数量 到目前为止,我知道的代码是dir和ren。我现在卡住了 ren *.txt 1.txt 下一个代码片段可能适合您(使用.bat扩展名保存);请注意,rename命令仅用于调试目的: @echo off SETLOCAL enableextensions enabledelayedexpans

我有一些不同名字的文件

Leviathan.txt、Dragon.txt等

我想把它变成一个数字

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

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

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

ren *.txt 1.txt

下一个代码片段可能适合您(使用
.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
如果您坚持使用一行程序(在适当的工作目录中启动):

资源(必读):

  • (命令参考)
  • (其他特殊性)
  • %~G
    等特殊页面)
  • 启用延迟扩展
  • ^>
    %%
    等)

假设您的现有文件中没有一个已经命名为类似于n.txt的名称,其中n是一个数字,那么只需将CD刻录到您的文件夹中,然后从命令行运行以下命令:

for "tokens=1* delims=:" %A in ('dir /b *.txt^|findstr /n "^"') do @ren "%B" "%A.txt"
如果在批处理脚本中使用该命令,则将百分比加倍

编辑

我忘记了我的-正则表达式重命名实用程序。它是纯脚本(混合JScript/批处理),从XP开始在任何Windows机器上本机运行

JREN有一个内置功能,可以在每个新文件名中加入一个数字,另外,它还可以将数字保留为零,以便DIR命令按数字顺序列出文件。默认的数字宽度为3位,因此文件将类似于“001.txt”、“002.txt”、“010.txt”、“100.txt”等

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

jren "^.*" "$n+'.txt'" /j /fm *.txt /npad 1
由于JREN本身就是一个批处理脚本,因此如果将命令放在另一个批处理脚本中,则必须使用calljren

通过命令提示符下的
jren/?| more
可以获得完整的文档。我的控制台窗口配置了一个大的缓冲区,因此我可以向后滚动以查看以前的输出,并且我不需要将帮助传送到更多

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