我正在编写一个批处理文件,删除所有以“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 ()
)
这可以通过单个命令行来完成:
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 文档。
Mofi 的计数循环方式:
for /l %%I in (0,1,9) do del /F /Q "A%%I*.jpg" 2>nul
将 /f 与 dir 结合使用并使用 findstr 进行过滤
for /f "delims=" %%I in (
'dir /b "A*.jpg"^|findstr /I "^A[0-9].*\.jpg"'
) Do del /F /Q "%%I" 2>nul
这是根据您的尝试提供的解决方案:
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"
)
)
)