it-swarm-ko.tech

Windows CMD에서 한 줄에 두 개의 명령을 어떻게 실행합니까?

Windows CMD 콘솔에서 두 개의 명령을 실행하고 싶습니다.

리눅스에서 나는 이것을 좋아할 것이다.

touch thisfile ; ls -lstrh

Windows에서는 어떻게됩니까?

777
flybywire

2000 년 이래로 모든 Microsoft OS에서 이처럼 여전히 좋은 오늘날 :

dir & echo foo

첫 번째 명령이 성공적으로 종료 된 경우에만 두 번째 명령을 실행하려면 다음을 수행하십시오.

dir && echo foo

한 줄에 여러 명령을 실행하는 단일 앰퍼샌드 (&) 구문은 Windows XP, Windows 2000 및 이전 NT 버전으로 돌아갑니다. (적어도 여기에 의견 제시 자에 따르면 4.0.)

이것에 대한 몇 가지 다른 점이 있습니다.이 페이지를 스크롤하면됩니다.

역사적인 데이터는 교육적이라고 생각하는 사람들을 위해 있습니다.

그 전에 && 구문은 해당 기능이 Microsoft 명령 인터프리터에 추가되기 전에 쉘 대체 4DOS의 기능이었습니다.

Windows 95, 98 및 ME에서는 다음과 같이 파이프 문자를 사용합니다.

dir | echo foo

MS-DOS 5.0 이상에서는 몇 가지 이전 Windows 및 NT 버전의 명령 인터프리터를 통해 (문서화되지 않은) 명령 구분 기호는 ^ T로 표시 할 문자 20 (Ctrl + T)이었습니다.

dir ^T echo foo
1005
djdanlib

문서의 인용문 :

여러 명령 및 조건부 처리 기호 사용

조건부 처리 기호를 사용하여 단일 명령 행이나 스크립트에서 여러 명령을 실행할 수 있습니다. 조건부 처리 기호로 여러 명령을 실행하면 조건부 처리 기호의 오른쪽에있는 명령이 조건부 처리 기호의 왼쪽에있는 명령의 결과에 따라 작동합니다. 

예를 들어, 이전 명령이 실패한 경우에만 명령을 실행하려고 할 수 있습니다. 또는 이전 명령이 성공한 경우에만 명령을 실행할 수도 있습니다.

다음 표에 나열된 특수 문자를 사용하여 여러 명령을 전달할 수 있습니다.

  • & [...]
    command1 & command2
    한 명령 줄에서 여러 명령을 구분할 때 사용합니다. Cmd.exe는 첫 번째 명령을 실행 한 다음 두 번째 명령을 실행합니다.

  • && [...]
    command1 && command2
    기호 앞의 명령이 성공한 경우에만 && 다음에 오는 명령을 실행하는 데 사용하십시오. Cmd.exe는 첫 번째 명령을 실행 한 다음 첫 번째 명령이 성공적으로 완료된 경우에만 두 번째 명령을 실행합니다. 

  • || [...]
    command1 || command2
    다음 명령을 실행하는 데 사용하십시오. || || 앞의 명령 실패합니다. Cmd.exe는 첫 번째 명령을 실행 한 다음 첫 번째 명령이 성공적으로 완료되지 않은 경우에만 두 번째 명령을 실행합니다 (오류 코드가 0보다 큰 경우).

  • ( ) [...]
    (command1 & command2)
    여러 명령을 그룹화하거나 중첩하는 데 사용합니다.

  • ; or ,
    command1 parameter1;parameter2
    명령 매개 변수를 분리하는 데 사용하십시오.

519
Raihan

&; (실행 명령)에 대한 Bash와 동일하며 &&는 Bash에 해당하는 && (이전 오류가 발생하지 않은 경우에만 명령 실행)입니다.

65
manojlds

&을 사용하여 차례대로 명령을 실행할 수 있습니다. 예 : c:\dir & vim myFile.txt

23
scrappedcola

바탕 화면과 같은 cmd 바로 가기를 만들려면/k 매개 변수를 추가합니다 (/ k는 유지를 의미하고/c는 창을 닫을 것임).

cmd /k echo hello && cd c:\ && cd Windows
16
TroodoN-Mike

call 를 사용하여 너무 빨리 평가되는 환경 변수 문제를 극복 할 수 있습니다.

set A=Hello & call echo %A%
11
SSi

다수의 처리 기호 는 같은 줄에서 여러 명령을 실행할 때 사용할 수 있으며 경우에 따라 리디렉션 처리로 이어지고 다른 경우에는 출력을 변경하거나 실패 할 수 있습니다. 하나의 중요한 경우는 변수를 조작하는 동일한 행 명령에 배치하는 것입니다.

@echo off
setlocal enabledelayedexpansion
set count=0
set "count=1" & echo %count% !count!

0 1

위의 예에서 볼 수 있듯이 변수를 사용하는 명령이 같은 줄에있는 경우 지연된 확장을 사용하여 변수 값을 업데이트해야합니다. 변수가 인덱싱 된 경우 %% 수정 자와 함께 CALL 명령을 사용하여 같은 줄에서 값을 업데이트하십시오.

set "i=5" & set "arg!i!=MyFile!i!" & call echo path!i!=%temp%\%%arg!i!%%

path5=C:\Users\UserName\AppData\Local\Temp\MyFile5
6
sambul35

그래서, 컨텍스트 메뉴에서 RegAsm어셈블리 등록)을 실행하는 특정 작업을 활성화하려고했습니다. 내가 겪었던 문제는 그 결과를 읽을 수 있기 전에 결과가 깜박 거리고 사라지는 것이 었습니다. 그래서 Pause에 파이핑을 시도했는데, 명령이 실패 할 때 작동하지 않습니다. (여기에 언급 된 _ (Pause 명령은 .bat 스크립트에서 작동하지 않습니다. 여기에서 일괄 파일 명령 PAUSE가 작동하지 않습니다. ). 그래서 cmd /k 하지만 더 많은 명령을 위해 창을 열어 둡니다 (결과를 읽으 려합니다). 그래서 pause 뒤에 exit을 추가하여 체인에 다음과 같은 결과가 나타납니다.

cmd /k C:\Windows\Microsoft.NET\Framework\v4.0.30319\regasm.exe "%1" /codebase \"%1\" & pause & exit

이것은 RegSm이 파일에서 실행되고 그 결과를 보여준 다음 "계속하려면 아무 키나 누르십시오 ..."프롬프트가 표시되면 키를 누를 때 프롬프트 창이 닫힙니다.

추신 관심있는 다른 사람들을 위해 다음 .reg 파일 항목을 사용하여 .dll 파일에 dllfile 연결을 추가 한 다음 그 파일에 RegAsm 명령 확장 (이스케이프 된 따옴표 및 백 슬래시에주의)을 추가 할 수 있습니다.

[HKEY_CLASSES_ROOT\.dll]
"Content Type"="application/x-msdownload"
@="dllfile"

[HKEY_CLASSES_ROOT\dllfile]
@="Application Extension"

[HKEY_CLASSES_ROOT\dllfile\Shell\RegAsm]
@="Register Assembly"

[HKEY_CLASSES_ROOT\dllfile\Shell\RegAsm\command]
@="cmd /k C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\regasm.exe \"%1\" /codebase \"%1\" & pause & exit"

이제는 어셈블리를 등록하는 좋은 마우스 오른쪽 버튼 메뉴가 있습니다.

5
SNAFUBAR

cmd /c ipconfig /all & Output.txt

이 명령은 단일 명령으로 명령을 실행하고 Output.txt 파일을 엽니 다.

5
dpp.2325

동시에 두 명령을 실행하려면 두 명령 사이에 & (앰퍼샌드) 기호를 사용해야합니다. 이렇게 :

color 0a & start chrome.exe

건배!

3
PryroTech

나는 같은 창에 두 개의 ping을 넣으려고하는데, 같은 줄에 직렬 명령이있다. 첫 번째 명령을 마친 후 두 번째 명령을 실행하십시오.

해결책은 Windows 7 명령 프롬프트에서 start /b와 결합하는 것이 었습니다.

/b없이 평상시처럼 시작하고 별도의 창에서 시작하십시오.

같은 줄에서 시작하는 데 사용되는 명령은 다음과 같습니다.

start /b command1 parameters & command2 parameters

어떤 방식 으로든 출력을 구문 분석하려면이 방법을 사용하지 않는 것이 좋습니다. 출력 결과가 명령 출력간에 뒤섞여 있음을 알았습니다.

3
sdcxp

음, 두 가지 옵션이 있습니다 : 파이프 또는 단지 & :

DIR /S & START FILE.TXT

또는,

tasklist | find "notepad.exe"

파이핑 (|)은 한 명령의 출력을 다른 명령으로 가져 오는 데 더 유용합니다. 그리고 (&)는 이것을 실행하는 것뿐입니다. 

3
PyDever

아니, cd / && tree && echo %time%. 에코 된 시간은 첫 번째 명령이 실행될 때입니다.

배관에는 문제가 있지만 사람들이 작동하는 한 중요하지 않습니다.

1
notarealname

한 줄에서 변수를 사용하거나 조작하려고하면 내용에주의하십시오! 예 : 다음과 같은 변수

PATH=C:\Program Files (x86)\somewhere;"C:\Company\Cool Tool";%USERPROFILE%\AppData\Local\Microsoft\WindowsApps;

%PATH%로 사용하면 처리 할 수없는 문제가 발생할 수 있습니다.

  1. 닫는 괄호는 그룹 문을 종료합니다.
  2. 큰 따옴표로는 괄호 문제를 처리하기 위해 %PATH%를 사용할 수 없습니다
  3. %USERPROFILE%와 같은 참조 된 변수에는 무엇이 포함됩니까?
0
V15I0N

예를 들어, gulp 빌드 시스템을 사용할 때

gulp - 기본값> 빌드

gulp build - 빌드 폴더 빌드

gulp watch - 파일보기 시작

gulp dist - 빌드 dist-folder

한 줄로 할 수 있습니다.

cd c:\xampp\htdocs\project & gulp & gulp watch
0
Mile Mijatovic

예, 있습니다. 그것은 &입니다.

&&는 실패하지 않았 으면 명령 1이 완료되면 명령 2를 실행합니다.

& 관계없이 실행됩니다.

간단합니다 : &와 함께 차별화하십시오. 예: 

echo Hello World && echo GoodBye World

안녕히 월드는 Hello World 다음에 인쇄 될 것입니다.

0
Rajan Dhanowa