[windows] Windows 배치 파일의 한 줄에 여러 명령

Unix에서는 다음과 같이 여러 명령을 한 줄에 넣을 수 있습니다.

$ date ; ls -l ; date

Windows에서 비슷한 것을 시도했습니다.

 > echo %TIME% ; dir ; echo %TIME

그러나 그것은 시간을 인쇄하고 명령을 실행하지 않습니다 dir.

이것을 어떻게 할 수 있습니까?



답변

사용하다:

echo %time% & dir & echo %time%

이것은 메모리에서 in bash및 기타 UNIXy 쉘의 세미콜론 구분 기호와 동일합니다 .

이 또한의 &&(나 ||) 최초의 성공 (또는 실패) 경우에만 두 번째 명령을 실행하는,하지만 하나의 앰퍼샌드는 &여기에서 찾고있는 것입니다.


그러나 환경 변수는 실행보다는 읽기에서 평가되는 경향이 있기 때문에 동일한 시간을 제공 할 가능성이 있습니다.

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

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


답변