如何增加文件夹名称

我有一个batch file,创build一个名为TempIOFile的文件夹。 在后续运行中,应该识别TempIOFile文件夹存在并创build该文件夹的增量版本(TempIOFile1,TempIOFile2等)。

我有代码,以增加文件的作品:

set "baseName=TempIOFile" 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%" 

但是,当我尝试使用IF EXIST语句时出现错误:文件名,目录名称或卷标语法不正确。

 IF EXIST %userprofile%\desktop\TempIOFile ( set "baseName=TempIOFile" 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%" ) ELSE ( MKDIR %userprofile%\desktop\TempIOFile 

我不知道为什么这不起作用。 TempIOFile被创build,但是在后续运行中增加的版本不是。 谁能帮忙?

应该像这样简单。 除非我不理解你的问题。

  @echo off set "Num=" :loop If EXIST "%userprofile%\desktop\TempIOFile%Num%\" ( set /A Num+=1 goto loop ) md "%userprofile%\desktop\TempIOFile%Num%\" 

或这个。

 @echo off set "Num=" :loop (md "%userprofile%\desktop\TempIOFile%Num%\" > nul 2>&1) || (set /A Num+=1 & goto loop)