윈도우즈 cmd 스크립트에서 여러 명령 실행
Windows cmd 스크립트를 작성하여 여러 작업을 연속적으로 수행하려고 합니다.그러나 스크립트의 첫 번째 명령어 이후에는 항상 중지됩니다.
이 명령어가 끝나면 maven build가 정지됩니다(관련성이 있는지 확실하지 않습니다).
어떻게 하면 각 작업을 차례로 수행하고 실행할 수 있을까요?
소프트웨어의 인스톨이나 레지스트리 설정 등은 전혀 문제가 되지 않습니다.바닐라 Windows XP 의 인스톨에서는 동작하지 않으면 안 됩니다.
명령어 중 하나라도 실패했을 경우 스크립트를 중단하는 것이 이상적이지만, 이는 필수적이 아니라 "사용하기 좋은" 명령어입니다.
감사해요.
다른 .bat 파일을 호출할 때는 호출 앞에 "call"이 필요합니다.
call otherCommand.bat
첫 번째 명령어가 성공한 경우에만 명령어 사이에 & & 기호를 사용하여 두 번째 명령을 실행할 수 있습니다.자세한 내용은 http://commandwindows.com/command1.htm 를 참조해 주세요.
첫 번째 명령이 중지되는 이유를 알 수 없습니다.평행하게 할 수 있다면 이런 것도 할 수 있어요.
start cmd.exe /C 1.bat
start cmd.exe /C 2.bat
저는 방금 maven 테스트 스크립트를 실행하기 위한 배치스크립트를 작성하는 것과 똑같은 작업을 하고 있습니다.문제는 mvn 클린 설치를 사용하여 호출하는 maven scalling maven scrips...는 그 자체가 스크립트이므로 call mvn clean install로 실행해야 합니다.
동작하는 코드
rem run a maven clean install
cd C:\rbe-ui-test-suite
call mvn clean install
rem now run through all the test scripts
call mvn clean install -Prun-integration-tests -Dpattern=tc-login
call mvn clean install -Prun-integration-tests -Dpattern=login-1
콜의 사용에 주의해 주세요.이렇게 하면 배치 파일에서 연속된 maven 스크립트를 사용할 수 있습니다.
두 개의 앰퍼샌드를 사용하면 첫 번째 명령어가 성공한 경우에만 두 번째 명령어가 실행됩니다.
cd Desktop/project-directory && atom .
여기서 1개의 앰퍼샌드만 사용하면 첫 번째 앰퍼샌드가 실패하더라도 두 명령어 모두 실행이 시도됩니다.
cd Desktop/project-directory & atom .
Windows 를 실행하고 있는 경우는, 다음의 커맨드를 사용할 수 있습니다.
드라이브:
cd "Script location"
schtasks /run /tn "TASK1"
schtasks /run /tn "TASK2"
schtasks /run /tn "TASK3"
exit
질문에 대한 직접적인 답변은 모르겠지만, 이러한 스크립트를 많이 실행한다면 perl과 같은 보다 강력한 언어를 배울 가치가 있을 것입니다.Windows(activestate, cygwin 등)에는 무료 구현이 존재합니다.나는 그것이 내 자신의 일을 위해 처음 노력할 가치가 있다는 것을 알았다.
편집:
@Ferruccio에서 제안했듯이 추가 소프트웨어를 설치할 수 없는 경우 vbscript 및 javascript를 고려하십시오.Windows 스크립팅호스트에 내장되어 있습니다.
배치 파일에는 세미콜론이 필요하지 않습니다.콜을 사용해야 하는 이유는 mvn 자체가 배치파일이고 배치파일이 콜을 통해 서로 콜해야 하기 때문입니다.그렇지 않으면 제어가 발신자에게 반환되지 않습니다.
언급URL : https://stackoverflow.com/questions/197976/executing-multiple-commands-from-a-windows-cmd-script
'programing' 카테고리의 다른 글
| 값 '1'을 반환합니다. 참조된 셀이 비어 있습니다. (0) | 2023.04.16 |
|---|---|
| Apache POI를 사용하여 특정 Excel 열을 읽는 방법 (0) | 2023.04.16 |
| npm ERR!오류: EPERM: 작업이 허용되지 않습니다. 이름을 변경하십시오. (0) | 2023.04.16 |
| Objective-C 내에서 Swift 클래스를 사용할 수 없습니다. (0) | 2023.04.16 |
| $$가 부모 프로세스와 동일한 ID를 반환하는 이유는 무엇입니까? (0) | 2023.04.11 |