Cygwin 내에서 cmd.exe 실행


16

직장에서 메인 쉘에 Cygwin을 사용하고 싶지만 그룹은 여러 프로세스에 배치 파일을 사용합니다. cmd /c batch.batCygwin에서 배치 파일을 실행하기 위해 할 수 있다고 들었습니다 . 이것은 어떤 경우에는 작동하지만 다른 경우에는 작동하지 않습니다. 이 작업을 수행하면 배치 파일 중 하나가 완전히 실패하지만 cmd 쉘에서 실행하면 정상적으로 작동합니다.

내가 알았던 또 다른 이상한 점 cmd /?은 Cygwin에서 실행하면 출력이 없다는 것입니다. cmd 쉘에서 이것을 실행하면 표준 도움말이 제공됩니다. 조차도 cmd /c cmd /?출력 을 제공하지 않습니다. cmdCygwin에서 실행 하면 cmd 쉘이 표시되고 실행 cmd /?하면 도움말 텍스트가 표시되지만 페이지가 끊어지지 않습니다.

다음으로 시도해야 할 것은 시작-> 실행으로 이동 한 다음 "cmd"를 입력 한 것처럼 고유 한 창에서 실제로 cmd를 시작하는 방법을 찾는 것입니다. Cygwin 내에서이를 수행 할 수있는 방법이 있습니까?

답변:


8

/?물음표는 단일 문자에 맞는 bash에 의해 패턴으로 취급되므로 Cygwin 루트에 하나의 문자 파일이나 디렉토리가 있으면 패턴이 그 문자로 바뀝니다. echo /?그것이 일어나고 있는지 보여줄 것입니다. 백 슬래시로 물음표를 이스케이프 할 수 있습니다 : /\?. 또는 전체 주장을 인용하십시오 : '/?'.

cygstart c:/windows/system32/cmd 자체 창에서 cmd.exe를 시작합니다.


내 승리 xp sp2 latop에서 다음 코드 스 니펫이 작동합니다. cygstart / cygdrive / c / WINDOWS / system32 / cmd
Michael Mao

14

Cygwin 셸에서 직접 배치 파일을 실행할 수 있으며에 대한 중간 호출조차 필요하지 않습니다 cmd. 배치 파일에 인수가 필요한 경우 Windows 방식으로 인용해야합니다. 실행하는 것이 더 간단 할 수 있습니다 cmd /c 'foo.bat "quoted arguments"'.

어떤 터미널에서 쉘을 실행하고 있는지 말하지 않습니다. 배치 파일 자체는 그 점에 신경 쓰지 않지만 배치 파일에서 실행되는 명령은 가능합니다. Cygwin 터미널 에뮬레이터는 Windows 콘솔을 에뮬레이트하지 않으므로 Cygwin 프로그램 및 stdio 전용 프로그램에는 적합하지만 Windows 콘솔 프로그램에는 적합하지 않습니다.

Cygwin 터미널 (예 : rxvt 또는 mintty)에서 Cygwin 셸을 정상적으로 실행하는 경우을 사용하여 별도의 Windows 콘솔에서 문제 배치 파일을 실행할 수 있습니다 start foo.bat. 당신은 실행할 수 있습니다 Console2를 윈도우 콘솔을위한 더 나은 대체 및 (또는 Console2에서) Cygwin에서 터미널에서 Console2와 Cygwin에서 응용 프로그램에서 Windows 콘솔 응용 프로그램을 실행합니다.

cmd /?Cygwin 루트 디렉토리에 1 자 길이의 디렉토리가있을 수 있으므로 쉘은 확장 /?되어 cmd출력을 생성하지 않는 스위치와 함께 실행됩니다 .


쉘 변수를 cmd 인수에 붙여 넣어야했기 때문에 다음과 같은 Bash 및 cmd 파서에서 작동 할 수 있다고 생각했습니다. u = 'DOMAIN \ ACC'p = 'X <12'r = '{Baz 3.1 5-x-(TTT )} 'd = $'\ " 'cmd / c foo.bat -u % d %% u %% d % -p % d %% p %% d % -fooBar % d %% r %% d %- fooBAR true
eel ghEEz
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.