如何批量退出 for /f 循环?
How to exit a for /f loop in a batch ?
我对正在编写的批处理文件有疑问。
如何定义 "for /f" 循环以仅执行脚本的一部分而不是整个脚本?
在下面的脚本中,我想
我准确地说我需要使用 "call" 方法(因为另一个反冲问题)。
感谢您的帮助:)
@echo off
setlocal enabledelayedexpansion
WMIC LOGICALDISK where drivetype=3 get caption>%~n0.tmp
for /f "tokens=1-3 skip=1" %%a in ('type "%~n0.tmp"') do call :displayinfo %%a
del "%~n0.tmp"
goto :eof
:displayinfo
set drive=%1
echo Le drive est %drive%
echo lancement du DIR
REM call dir /A HS /s /b %drive%\ >> d:\Dir_ALL.txt
echo Fin du DIR
:step2
echo this is the step2, to be executed when the for /F loop is over.
echo blablalblablalballbabal
:step_End
echo Ths is the end
@pause
您需要进行两项更改。
- 将
for
行下方的 goto :eof
两行更改为 goto :step2
。
- 添加
goto :EOF
作为 :displayinfo
方法的最后一行。这将导致方法 return 进入 for
循环。
它应该是这样的。
@echo off
setlocal enabledelayedexpansion
WMIC LOGICALDISK where drivetype=3 get caption>%~n0.tmp
for /f "tokens=1-3 skip=1" %%a in ('type "%~n0.tmp"') do call :displayinfo %%a
del "%~n0.tmp"
goto :step2
:displayinfo
set drive=%1
echo Le drive est %drive%
echo lancement du DIR
REM call dir /A HS /s /b %drive%\ >> d:\Dir_ALL.txt
echo Fin du DIR
goto :EOF
:step2
echo this is the step2, to be executed when the for /F loop is over.
echo blablalblablalballbabal
:step_End
echo Ths is the end
@pause
我对正在编写的批处理文件有疑问。
如何定义 "for /f" 循环以仅执行脚本的一部分而不是整个脚本?
在下面的脚本中,我想
我准确地说我需要使用 "call" 方法(因为另一个反冲问题)。
感谢您的帮助:)
@echo off
setlocal enabledelayedexpansion
WMIC LOGICALDISK where drivetype=3 get caption>%~n0.tmp
for /f "tokens=1-3 skip=1" %%a in ('type "%~n0.tmp"') do call :displayinfo %%a
del "%~n0.tmp"
goto :eof
:displayinfo
set drive=%1
echo Le drive est %drive%
echo lancement du DIR
REM call dir /A HS /s /b %drive%\ >> d:\Dir_ALL.txt
echo Fin du DIR
:step2
echo this is the step2, to be executed when the for /F loop is over.
echo blablalblablalballbabal
:step_End
echo Ths is the end
@pause
您需要进行两项更改。
- 将
for
行下方的goto :eof
两行更改为goto :step2
。 - 添加
goto :EOF
作为:displayinfo
方法的最后一行。这将导致方法 return 进入for
循环。
它应该是这样的。
@echo off
setlocal enabledelayedexpansion
WMIC LOGICALDISK where drivetype=3 get caption>%~n0.tmp
for /f "tokens=1-3 skip=1" %%a in ('type "%~n0.tmp"') do call :displayinfo %%a
del "%~n0.tmp"
goto :step2
:displayinfo
set drive=%1
echo Le drive est %drive%
echo lancement du DIR
REM call dir /A HS /s /b %drive%\ >> d:\Dir_ALL.txt
echo Fin du DIR
goto :EOF
:step2
echo this is the step2, to be executed when the for /F loop is over.
echo blablalblablalballbabal
:step_End
echo Ths is the end
@pause