抱歉,这是我第一次真正批量尝试。我有很多文件需要删除或移动。
以下将给出结果,但我需要对其进行扩展。
@echo off
set /p ll=lowerlimit?
set /p i=increment?
set /p ul=upperlimit?
for /l %%x in (%ll%,%i%,%ul%) do (
if exist "c:\users\username\folder\subfolder\000%%x_0.jpg" (
echo "000%%x_0.jpg file found") else (echo "000%%x_0.jpg file does not exist")
)
:end
pause
有一个大错误,例如文件
00001_0.jpg
存在。
我的脚本很愚蠢,因为它会检查
0001_0.jpg
是否存在,并再次检查大于两位数的名称,例如,当文件 000100_0.jpg
可能存在时,它会检查 00100_0.jpg
。将值存储在数组中,了解如何正确批量处理字符串并根据需要删除或删除,这将很有用
可以使用下面的批处理文件来搜索编号为 1 到 9999 的文件,并且始终保留四位数到
_0.jpg
:
@echo off
setlocal EnableExtensions DisableDelayedExpansion
set "ValueStart=1"
set "ValueIncrement=1"
set "ValueLast=9999"
set /P "ValueStart=Start value (default: %ValueStart%): "
set /P "ValueIncrement=Increment by: (default: %ValueIncrement%): "
set /P "ValueLast=Last value (default: %ValueLast%): "
set "FolderPath=%USERPROFILE%\folder\subfolder"
setlocal EnableDelayedExpansion
for /L %%G in (%ValueStart%,%ValueIncrement%,%ValueLast%) do (
if %%G LSS 10000 (
set "FileName=000%%G"
set "FileName=!FileName:~-4!_0.jpg"
) else set "FileName=%%G_0.jpg"
if exist "!FolderPath!\!FileName!" (echo Found file: !FileName!) else echo Not exist: !FileName!
)
endlocal
pause
endlocal
我推荐阅读:
要了解所使用的命令及其工作原理,请打开命令提示符窗口,执行以下命令,并完整、仔细地阅读每个命令显示的帮助页面。
echo /?
endlocal /?
for /?
if /?
pause /?
set /?
setlocal /?