do()不能用於我在線的代碼,所以我使用do:processline。 問題在於「繼續;」在想要進入下一次迭代時不起作用。這個問題是它的執行:eof每次迭代而不是後循環...如何避免這種情況?謝謝批處理腳本「繼續」循環?
SET NGCSV=UserList3Col.csv
SET NGCSVT1=UserList3Col.csv.temp1
SET NGCSVT2=UserList3Col.csv.temp2
SET NGFINAL=UserListFinal.csv
del %NGFINAL%
set /a c=0
for /f "tokens=1" %%i in (groupList.txt) do call :processline %%i
goto :eof
:processline
SET GROUP=%*
setlocal EnableDelayedExpansion
net group /domain "GG-%GROUP%" > %NGCSV%
REM * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
REM Now strip out the crap
REM ...make a temporary copy
COPY %NGCSV% %NGCSVT2%
REM ...strip off the crap using alternating temp files
findstr /B /L /V /C:"The request" %NGCSVT2% > %NGCSVT1%
findstr /B /L /V /C:"Group name" %NGCSVT1% > %NGCSVT2%
findstr /B /L /V /C:"Comment" %NGCSVT2% > %NGCSVT1%
findstr /B /L /V /C:"Members" %NGCSVT1% > %NGCSVT2%
findstr /B /L /V /C:"-----" %NGCSVT2% > %NGCSVT1%
findstr /B /L /V /C:"The command" %NGCSVT1% > %NGCSVT2%
REM ...make the last temporary copy the final copy and clean up
COPY %NGCSVT2% %NGCSV%
DEL %NGCSVT1%
DEL %NGCSVT2%
REM * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
REM ...Column 1
for /F "tokens=1" %%A in (%NGCSV%) do @echo %GROUP%,%%A >> %NGFINAL%
REM ...Column 2
for /F "tokens=2" %%A in (%NGCSV%) do @echo %GROUP%,%%A >> %NGFINAL%
REM ...Column 3
for /F "tokens=3" %%A in (%NGCSV%) do @echo %GROUP%,%%A >> %NGFINAL%
del %NGCSV%
continue; rem Doesn't work
:eof
set /a c=c+1
echo %c%
你能簡化你的問題嗎?究竟發生了什麼事情與你的預期? – 2014-10-06 08:49:18
我不確定我可以。這個代碼基本上是兩個谷歌搜索相結合。當我剪掉一堆東西(比如內部循環)時,我得到了%NGFINAL%輸出(雖然沒有像我想要的那樣)。我現在已經更改爲我的原始版本了,我想找到一個「繼續」等價物更容易,而不是爲什麼循環中斷。 – Dird 2014-10-06 09:29:57
在Windows批處理循環中可能出現[「continue」等效命令](http:// stackoverflow。 com/questions/36355490/continue-equivalent-command-in-nested-loop-in-windows-batch) – 2017-02-27 03:43:30