2009-04-24 7 views
15

Cygwin의 bash에서 .bat 스크립트를 실행할 때 실행중인 메커니즘은 무엇입니까? 나는 .EXE를 실행하면 .EXE가 Cygwin에서 왔는지 또는 더 전통적인 환경에서 왔는지에 관계없이 실행된다는 것을 이해합니다. 나는 #로 실행 가능한 스크립트를 실행할 때 그것을 이해합니다! 처음에는 Cygwin에서 실행을위한 마법을 제공합니다.Cygwin에서 .bat 스크립트를 실행할 수있는 이유는 무엇입니까?

하지만 왜 .bat 스크립트가 작동합니까? Cygwin 내부에 Windows .bat 스크립트가 무엇인지, 어떻게 처리해야 하는지를 알고있는 일부 구성 요소가 있습니까? 또는 Windows에서 .bat 스크립트 대신 자동으로 작동하지 않는 .EXE 파일을 실행하는 호출을 실행하는 것이 불가능하다는 것입니까?

답변

10

cygwin에서 bash가 박쥐 확장자가 플래그가 지정된 실행 파일 (Windows 규칙에 대한 cygwin 히트 팁)으로 간주됩니다. 이런 식으로 파일을 관련 인터프리터 (cmd.exe, os 구성)와 함께로드하고 실행합니다. # bash의 새 인스턴스를 생성하여 #! 스크립트 (posix 표준 당). bash가

./test.bat params 

cmd /c test.bat params 
+1

정상적인 UNIX 쉘 스크립트의 경우, shebang 다음에 맹목적으로 사용되는 프로그램을로드해야합니다. bash를 사용하지 않고 bash를 지정하는 스크립트는 매우 휴대용이 아닙니다 :) – Joey

+0

이것은 .bat에서는 작동하지만 .ps1 (PowerShell). Cygwin에는 .bat 파일의 일부 내장 처리가 있어야합니다. –

9

그리고 당신이 쉘 스크립트 처리와 같은 * .cmd 파일 실행 포크와 파일에 자신의 로그를 추가하려면 :

cmd /c test.bat > nohup.out & 

즐기십시오!

2

에 해당하는 것으로 보인다 실행

관련 문제