일부 매개 변수와 함께 exe를 호출하는 배치 스크립트가 있습니다.작은 따옴표와 큰 따옴표 : 유닉스와 윈도우에서 같은 동작을하는 방법?
현재 나는 그렇게 내 EXE 파일에 매개 변수를 전달하고 다음 my_cmd.exe 프로그램의 옵션
$>my_cmd.exe %*
하나는 공간
$>my_cmd.bat --req "in: lava" (OK my prog receives in: lava)
$>my_cmd.bat --req 'in: lava' (NOK my program receives 'in: lava')
사용자 무관심 하나의 사용을 포함 할 수있는 인수를 따옴표 또는 큰 따옴표.
일괄 처리 스크립트 수준에서 사용되기 때문에 큰 따옴표로 작동하지만 '(작은 따옴표)를 사용하면 내 프로그램으로 전달되고 전달됩니다.
my_cmd는 다중 플랫폼이며 unix에서는 작은 따옴표와 큰 따옴표가 모두 특수 문자입니다.
플랫폼에 따라 my_cmd 프로그램에서 특정 작업을 수행하지 않으려합니다.
쉘 스크립트와 배치 스크립트에서 동일한 동작을 수행 할 수있는 방법이 있습니까? 예를 들어 일괄 처리 스크립트가 작은 따옴표를 사용하면 먹을 수 있습니까?
가장 적합한 솔루션을 알려주십시오.
많은 감사
이런 종류의 문제에 대한 해결책은 두 가지 해석기를 같은 방식으로 작동시키지 않고 Windows와 Unix에있는 것을 사용하는 것입니다. 예 : Perl 또는 Ruby. 또는 Cygwin으로 전환하고 양면에서 Bash를 사용하십시오. 사실, 이것이 내가 Perl 프로그래밍을 시작했을 때입니다. – theglauber
이것은 파이썬을 사용하면서 수행하지만 파이썬 프로그램에 매개 변수를 전달해야합니다. 문제는 Windows에서 옵션이 --req '인 경우입니다. lava'Python 측에 있습니다 : lava ': lava : lava. 따라서 작은 구문을 처리하기 위해 파싱 수업을 속일 필요가 있으며 만족스럽지 않습니다. – zoobert
예, Windows에서의 견적 처리는 성가심입니다. "cmd /?"를 입력하십시오. 도움말 텍스트를주의 깊게 읽으십시오./s 스위치가 도움이 될 수 있습니다. – theglauber