Windows 명령 줄에서 한 줄로 여러 명령을 실행 하시겠습니까?


65

Windows 명령 줄에서 한 줄만으로 여러 명령을 실행하려면 어떻게해야합니까?

예를 들어 SVN 업데이트를 수행하고 모든 파일을 다른 위치에 복사하고 싶다고 가정 해보십시오.

svn update; copy *.* c:\development\copy\

그것은 분명히 작동하지 않습니다. ';'와 같은 문자 또는 구분 기호가 있습니까? 이런 식으로 뭔가를 수행?

답변:


105

그렇습니다. 그것은이다 &.

&& 명령 1이 완료되지 않으면 명령 2가 실행됩니다.

& 상관없이 실행됩니다.


7
&&&전용 '윈도우에서 작동 cmd.exe- 인 하지 DOS.
grawity

22
용어 'DOS'는 종종 cmd 를 설명 하는 데 사용되며 op가 svn을 사용함에 따라 여전히 DOS를 사용하고 있다고 의심합니다. pedantic 필요가 없습니다 :)
Phoshi

거기 : urlencode.blogspot.com/2009/06/vista-desktop-june-09.html 그는 Windows XP를 사용합니다. ) 확실히 DOS (그것은 좋은 적이 없어)
Phoshi

8
누군가 "DOS"를 언급 할 때 실제로 "Windows 명령 프롬프트"를 의미한다고 가정하는 것이 안전하다고 생각합니다. 나는 여기서 사지에 나가서 대부분의 사람들이 요즘 DOS를 많이 사용하지 않을 것이라고 말합니다. 수정 주셔서 감사합니다-오늘날과 시대에는 약간 불필요합니다.
Murdoch Ripper

@MurdochRipper 무슨 뜻인가요? 지금 DOS에서이 질문을보고 있습니다. ;)
Andrew

4

적어도 MS-DOS 6.22에서는 키 Ctrl+ T를 사용하여 일종의 단락 기호를 사용했습니다. 이것은 &Phoshi 가 언급 한 것처럼 작동했습니다 . 그러나 doskey.exe가 실행중인 경우에만 작동합니다.


4

start예를 들어 다음 과 같은 명령을 실행하려는 경우 한 줄로 여러 명령을 실행하려는 경우으로 명령을 시작합니다 .

start "" netsh dump && pause

그런 다음 2 단계로 수행해야합니다 (한 줄 솔루션은이 답변의 끝에 있습니다).

첫째, 임시 배치 파일에 명령 쓰기 (이 경우, 당신은 사용할 수 있습니다 &또는 &&) :

echo netsh dump ^&^& pause ^&^& exit>foobar.cmd
  -or-
echo netsh dump ^& pause ^& exit>foobar.cmd

"&"s앰퍼샌드 를 "이스케이프" "^" 하여 echo명령 에서 일반 문자로 처리 할 수 ​​있도록해야합니다 . 또는 메모장과 같은 텍스트 편집기를 사용하여 임시 배치 파일을 만들 수 있습니다.

그런 다음 start배치 파일을 시작하는 데 사용 하십시오.

start "" foobar.cmd
  -or-
start "" "temporary foobar.cmd"


참고 : 빈 따옴표는 쌍을 여는 "Title"명령 창의 제목 표시 줄에 표시 start됩니다. 이 "Title"인수는 기술적으로에 대한 선택적 인수 start이지만 실행할 명령 이 큰 따옴표로 묶인 경우 실제로 필요합니다start . 예를 들어 두 번째 예에서

start "" "temporary foobar.cmd"

빈 따옴표 쌍을 다음과 같이 생략하면 :

start "temporary foobar.cmd"

그런 다음 start새 명령 창을 열고 새 명령 창으로 사용 "temporary foobar.cmd"하고 새 명령 창 "Title"에서 아무것도 실행 되지 않습니다 .)

start배치 파일이 완료 될 때까지 기다리 려면 (종료 후 pause) start완료 하기 전에 /w스위치를 start명령에 추가해야합니다 .

start "" /w foobar.cmd

이 모든 것을 한 줄로 묶고 임시 배치 파일 ( foobar.cmd)을 제거 (삭제) 할 수도 있습니다 .

echo netsh dump ^&^& pause ^&^& exit>foobar.cmd && start "" /w foobar.cmd && del foobar.cmd
  -or-
echo netsh dump ^& pause ^& exit>foobar.cmd & start "" /w foobar.cmd & del foobar.cmd

임시 배치 파일을 삭제하려는 start경우 /w스위치 를 사용하여 실행해야합니다 . 그렇지 않으면 임시 배치 파일이 실행되기 전에 삭제 될 수 있습니다.


대신에 /w하나 넣을 수 짧은 잠을 파일을 삭제하기 전에. timeout 2예를 들어
안토니오

@ kevin-fegan 왜 임시 cmd 파일이 필요합니까 ???
maxxyme

0

첫 번째 명령을 if로 감싸고 싶지만 여전히 두 번째 명령을 실행하여 관계없이 실행하려면 cmd / c로 if를 다음과 같이 랩핑해야합니다.

존재하는 경우 cmd / c abc. (rd / q abc) & 에코 안녕하세요

if with cmd / c 접두사를 사용하지 않으면 전체 명령이 if의 일부가됩니다 (원하지 않을 수 있음).


또는 말할 수 있습니다(if exist abc. command₁) & command₂
Scott

@Scott 나는 칭찬이이 사이트들에 대한 죄악이라는 것을 알고 있지만 start "" cmd /c "(command₁) & (command₂)"웹상의 어느 곳에서도 합법적으로 답변되지는 않지만 대부분의 배치 진술을 연결하는 유일한 방법입니다. 축하합니다.
존 켄스

1
칭찬 / 축하해 주셔서 감사하지만, 무슨 말을하는지 이해하지 못합니다. user138334는 "만일 당신이 함께 첫 번째 명령을 포장하려는 말했다 if여전히 두 번째 명령처럼 당신이 포장해야 다음에 관계없이 다음 실행하는 것 if로모그래퍼 cmd /c뿐만 아니라"내가없이 그 일을하는 방법으로 대응 cmd /c. 그렇다면 대부분의 배치 문을 연결하는 유일한 방법은 다음을 사용하는 것입니다 cmd /c. 그리고 왜 start믹스에 던지고 있습니까?
Scott

0

사용 &!

%command1% & %command2% 두 명령을 모두 실행

%command1% && %command2% 첫 번째 명령을 실행합니다. 작동 한 경우 두 번째 명령을 실행하십시오.

%command1% || %command2% 실패한 경우 second 명령을 실행하십시오.

여기를 참조 하십시오


또한 &, &&||그 배치의 일부, 실제로는 명령이 아니다. 명령이 아닙니다.
KIRBY INHALES U

그리고이 %command%문자열을 명령으로 실행할 수 있습니다
KIRBY INHALES U

-1

'START'를 사용하여 여러 명령이 작동한다는 것을 알았습니다 (Windows 10 Home을 실행 중입니다). 예를 들면 다음과 같습니다.

START chrome.exe "page.web.com" & timeout 20

답변에는 "감사합니다"와 같은 해설이 포함되어서는 안됩니다. 이 답변을 편집하는 것을 고려해야합니다. 그래서 아무리 상세하게 말하지만 잡음이없는 (즉, 작동하지 않는 명령) 질문에 간단히 답하십시오
Ramhound

그가 찾고있는 것은 &아닙니다 start!
NetwOrchestration

어떤 문제가 해결됩니까? 없이 명령 줄을 입력하면 어떻게됩니까 start?
Scott

-2

이름이 bat.bat 인 짧은 배치 파일을 만듭니다 .

add cmd /c %1 
    cmd /c %2 
rem

9 줄까지 저장하고 저장하십시오.

그런 다음 큰 따옴표와 함께 사용하십시오.

bat "command one" "command two" "command three" 

cmd /c 각 명령을 실행하고 다음 줄에 대해 종료하고 이것이 &&보다 쉽다는 것을 말하지는 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.