我正在编写一个批处理文件,删除以" A"开头的所有JPG图像。并且第二个字符是数字,例如:A23.jpg,A2334.jpg等。
由于我是批处理编程的新手,我设法将几个代码行粘合如下:
@echo off
setlocal enabledelayedexpansion
for %%a in (A*.JPG) do (
set secondChar=%%a:~1,2%
for /f "delims=0123456789" %%i in ("%secondChar") do set var=%%i
if defined var (del %%a) else ()
)
答案 0 :(得分:2)
这可以通过一行完成:
for %%I in (0 1 2 3 4 5 6 7 8 9) do del /F /Q A%%I*.jpg 2>nul
要了解使用的命令及其工作原理,请打开命令提示符窗口,执行以下命令,并完全阅读为每个命令显示的所有帮助页面。
del /?
for /?
另请阅读Microsoft有关Using Command Redirection Operators。
的文章答案 1 :(得分:1)
Mofi的计数循环方式:
for /l %%I in (0,1,9) do del /F /Q "A%%I*.jpg" 2>nul
对dir使用for / f并使用findstr
进行过滤for /f "delims=" %%I in (
'dir /b "A*.jpg"^|findstr /I "^A[0-9].*\.jpg"'
) Do del /F /Q "%%I" 2>nul
答案 2 :(得分:1)
以下是基于您的尝试的解决方案:
for %%F in ("A*.jpg") do (
for /F "tokens=1* delims=0123456789" %%K in ("%%~F") do (
if /I "%%K"=="A" if not "%%L"=="" (
del /F "%%~F"
)
)
)