Запускать / вызывать пакетный скрипт windows из скрипта sh или bash - PullRequest
7 голосов
/ 03 августа 2010

У меня есть скрипт sh / bash, который должен вызывать командный файл с параметрами (параметры являются именами файлов и задаются в формате DOS / Windows).

В основном у меня есть: script.sh

#!/bin/sh
declare var1=$1
declare var2=$2
dosomething var1 var2
...
<invoke batch script> var1 var2
...
dosomethingelse

Я использую GNU bash, version 3.1.0(3)-release (i686-pc-msys) в качестве оболочки, на msysgit

Проблема в том, что при запуске из скрипта: $COMSPEC /c batchfile param1 param2 либо я получаю«пустое приглашение», которое выглядит как bash, но на консоли не отображается результат команды, либо cmd.exe start, но сценарий не выполняется.

Я пытался процитировать параметры для bash, как это:

$COMSPEC /c \"batchfile param1 param2\"
$COMSPEC /c \"\"batchfile param1 param2\"\"
$COMSPEC /c \"\"batchfile \"param1\" \"param2\"\"\"

Но я не получил никакого результата.

1 Ответ

10 голосов
/ 03 августа 2010

Похоже, мне нужно было выйти из пробела в параметре cmd:

$COMSPEC \/c batch-file\ \"$var1\"\ \"$var2\"

или

$COMSPEC /c batch-file\ \"$var1\"\ \"$var2\"

Я не уверен, что / from / c нужносбежал, но он работает в обоих направлениях.

...