我有一个批处理文件,用于创建名为TempIOFile的文件夹。在后续运行中,它应该识别出TempIOFile文件夹存在并创建该文件夹的递增版本(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已创建,但在后续运行中,增量版本不会。有人可以帮忙吗?
答案 0 :(得分:1)
应该就这么简单。除非我不理解你的问题。
@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)