programing

Windows 배치 파일의 한 줄에 여러 명령어가 표시됨

sourcetip 2023. 4. 22. 23:22
반응형

Windows 배치 파일의 한 줄에 여러 명령어가 표시됨

Unix 에서는, 다음과 같이 복수의 커맨드를 1 행에 넣을 수 있습니다.

$ date ; ls -l ; date

Windows에서도 비슷한 시도를 해봤습니다.

 > echo %TIME% ; dir ; echo %TIME

하지만 시간을 출력하고 명령을 실행하지 않습니다.dir.

어떻게 하면 좋을까요?

용도:

echo %time% & dir & echo %time%

이것은 메모리로부터, 의 세미콜론 세퍼레이터와 동등합니다.bash기타 UNIX 쉘.

그리고 또&&(또는||첫 번째 명령어가 성공(또는 실패)한 경우에만 두 번째 명령어가 실행되지만 단일 앰퍼샌드가 실행됩니다.&당신이 여기서 찾고 있는 겁니다


그러나 환경변수는 실행이 아닌 읽기로 평가되는 경향이 있기 때문에 같은 시간이 주어질 수 있습니다.

지연된 확장을 켜면 이 문제를 해결할 수 있습니다.

pax> cmd /v:on /c "echo !time! & ping 127.0.0.1 >nul: & echo !time!"
15:23:36.77
15:23:39.85

그건 명령줄에서 필요하죠.스크립트 안에서 하는 경우,setlocal:

@setlocal enableextensions enabledelayedexpansion
@echo off
echo !time! & ping 127.0.0.1 >nul: & echo !time!
endlocal

스크립트 러너에서도 실현 가능

ScriptRunner.exe -appvscript demoA.cmd arg1 arg2 -appvscriptrunnerparameters -wait -timeout=30 -rollbackonerror -appvscript demoB.ps1 arg3 arg4 -appvscriptrunnerparameters -wait -timeout=30 

롤백, 타임아웃, 대기 등의 기능도 있습니다.

언급URL : https://stackoverflow.com/questions/8922224/multiple-commands-on-a-single-line-in-a-windows-batch-file

반응형