如何使用Windows批处理增加文件夹名称?

ajw*_*art 5 windows batch-file

我有一个批处理脚本,可以创建一个名为New_Folder的文件夹以及一些子目录和文件.目前,如果我需要创建多个New_Folders,我必须重命名该批处理创建的每个New_Folder,然后才能再次运行它并创建一个新的.我想做的是进行批量检查,看看New_Folder是否已经存在,如果是,则将New_Folder增加一个数字.所以我有New_Folder,New_Folder1,New_Folder2等等.

我该怎么做呢?我看到的用于在批处理脚本中增加内容的解决方案似乎并不适用于我的情况,除了我为自己的代码复制/粘贴之外,我对批处理脚本没有任何了解.

dbe*_*ham 7

这是一个始终有效的解决方案,即使数字存在差距.文件夹编号始终比当前最大编号大1.

@echo off
setlocal enableDelayedExpansion
set "baseName=New_Folder"
set "n=0"
for /f "delims=" %%F in (
  '2^>nul dir /b /ad "%baseName%*."^|findstr /xri "%baseName%[0-9]*"'
) do (
  set "name=%%F"
  set "name=!name:*%baseName%=!"
  if !name! gtr !n! set "n=!name!"
)
set /a n+=1
md "%baseName%%n%"
Run Code Online (Sandbox Code Playgroud)