@echo off
setlocal
set /a "n=0,limit=5"
>"testfile1.txt" (
for /f "eol=: delims=" %%F in ('dir /o-d /b abc*.*') do (
echo %%F
2>nul set /a "n+=1,1/(limit-n)"||goto :break
)
)
:break
我故意除以0以检测何时达到限制.我可以简单地使用IF语句,但这需要延迟扩展,延迟扩展会破坏包含!的文件名.具有延迟扩展的适当解决方案必须在循环内切换延迟扩展的开启和关闭.