Windows 使用bat文件对文件进行连续编号

Windows 使用bat文件对文件进行连续编号,windows,batch-file,dos,Windows,Batch File,Dos,我在此文件夹中有一个文件夹,其中保存了所有.ild文件。问题是它们都应该编号,我需要一个批处理脚本来完成这项工作 我将所有的ILD保存在文件夹ILD中 现在我在“ILDS”文件夹中有以下3个文件: 如何重命名它们,以便将它们命名为: 1.ild 2.ild 3.ild 谢谢 您可以在它们上面循环并重命名它们 setlocal enabledelayedexpansion set /a num=1 for %%a in (*.txt) do ( ren "%%a" "!num!%%~xa" se

我在此文件夹中有一个文件夹,其中保存了所有.ild文件。问题是它们都应该编号,我需要一个批处理脚本来完成这项工作

我将所有的ILD保存在文件夹ILD中

现在我在“ILDS”文件夹中有以下3个文件:

如何重命名它们,以便将它们命名为:

1.ild
2.ild
3.ild

谢谢

您可以在它们上面循环并重命名它们

setlocal enabledelayedexpansion
set /a num=1
for %%a in (*.txt) do (
ren "%%a" "!num!%%~xa"
set /a num+=1
)
重命名必须分两步完成,因为给定的number.ild可能已经存在


注意:脚本可以运行多次,但一旦有10个或更多文件,每次运行时都会重新分配这些数字。换句话说,第一次名为1.ild的文件在第二次运行后将不再是同一个文件。

如果尝试将文件重命名为1.ild且1.ild已存在,则此操作将无效。你看是真的,但我的回答只是基于OP最初的要求,我并没有真的向前看那么远。
setlocal enabledelayedexpansion
set /a num=1
for %%a in (*.txt) do (
ren "%%a" "!num!%%~xa"
set /a num+=1
)
@echo off
setlocal disableDelayedExpansion
pushd "c:\somePath\ilds"
set "N=0"
for %%F in (*.ild) do (
  set "file=%%F"
  setlocal enableDelayedExpansion
  set /a N+=1
  ren "!file!" "!N!.ildnew"
  endlocal
)
ren *.ildnew *.ild
popd