为什么这不起作用?
SET FIRST=""
SET COUNT=0
FOR %%F IN (dir *.png) DO (
IF %COUNT% NEQ 0 GOTO _skip
SET FIRST=%%F
:_skip
ECHO "%%F",
SET /A COUNT=COUNT+1
)
它将FIRST
设置为上一个*.png
,因为IF
条件失败,因为COUNT
- 虽然增加了set /A
,但IF %COUNT%
无法工作。非常令人沮丧。
答案 0 :(得分:1)
不需要计算,只需在回声线之后goto skip
进行计数。
@echo off
for /f "delims=" %%f in ('dir /b *.png') do (
rem :: you can use "echo %%f" instead of "set first=%%f"
set first=%%f
goto _skip
)
:_skip
echo %first%
你将两件东西混合到扫描文件夹中。
以下是第二种方式:
@echo off
for %%f in (*.png) do (
set first=%%f
goto _skip
)
:_skip
echo %first%
exit /b 0
如果你需要绝对计算,这是跳过计数的方法。如评论中所述,您需要启用delayedExpansion
@echo off
set count=1
for %%f in (*.png) do (
set first=%%f
setlocal enabledelayedexpansion
if "!count!"=="1" goto _skip
endlocal
set /a count+=1
)
:_skip
echo !first!