을 for
통해 호출 하여 루프를 포함하는 한 줄 명령을 실행하려고합니다 cmd /C
.
명령 자체 for
는 서비스가 실행 중인지 (이 경우 JBoss) 확인하기 위해 루프를 실행하고 중지 된 경우 오류 코드와 함께 종료됩니다.
for /f "tokens=3 delims=: " %H in ('sc query JBossEAP7 ^| findstr "STATE"') do if "%H"=="STOPPED" exit /B 1
cmd
창에 입력 하거나 .bat
파일 에서 사용하면 제대로 작동 합니다 (를 대체하는 %
경우 %%
).
그러나 내가 이것을 사용하여 호출하려고 cmd /C
하면
cmd /C for /f "tokens=3 delims=: " %H in ('sc query JBossEAP7 ^| findstr "STATE"') do if "%H"=="STOPPED" exit /B 1
오류가 발생 | was unexpected at this time
합니다.
누구든지 cmd
배치 파일을 사용하지 않고 이를 통해 호출 할 수있는 방법을 알려줄 수 있습니까?
cmd /c " commands "
명령에서 사용할 수 있습니다 .
cmd /C "for /f "tokens=3 delims=: " %H in ('sc query JBossEAP7 ^| findstr "STATE"') do if "%H"=="STOPPED" exit /B 1"
또는 for
루프 명령에서 "sc query JBossEAP7 | findstr "STATE""
:
cmd /C for /f "tokens=3 delims=: " %H in ('"sc query JBossEAP7 | findstr "STATE""') do if "%H"=="STOPPED" exit /B 1
&&
.cmd /c sc query JBossEAP7 | findstr STATE.*STOPPED && exit /b 1
cmd /c "sc query JBossEAP7 | findstr STATE.*STOPPED && exit /b 1"
cmd/csc query JBossEAP7|findstr STATE.*STOPPED&&exit /b 1"
cmd/c|(sc query JBossEAP7 | find "STOPPED" && exit/b 1)
cmd/c| sc query JBossEAP7 | find "STOPPED" && exit/b 1
cmd/c"sc query JBossEAP7|find "STOPPED"&&exit/b 1"
cmd/c|sc query JBossEAP7|find "STOPPED"&&exit/b 1
Obs .: 명령 은 다음과 같은 줄에서 찾을 수 있습니다.findstr STATE.*STOPPED
rem :: STATE + One_or_More_Characters + STOPPED
> sc query vds
SERVICE_NAME: vds
TYPE : 10 WIN32_OWN_PROCESS
STATE : 1 STOPPED
WIN32_EXIT_CODE : 1077 (0x435)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
> sc query vds | findstr STATE.*STOPPED
STATE : 1 STOPPED
|----------------------|
STATE + .* + STOPPED
rem :: Omitting output >nul and using end End Of Line in findstr /e STOPPED
> sc query vds | findstr /e STOPPED>nul
STATE : 1
STOPPED
추가 자료 :
[√] /?
[√] CMD /?
[√] /?
[√] / F 용
[√] /?
[√] Findstr /?
[√] 조건부 실행 || && ...
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다