2008-10-31 7 views
0

Я пробовал варианты этого, но не имел никакой удачи, кроме возможности запуска окна cygwin. (Наматывается на ; для ясности)Как передать команды консоли Cygwin в Windows с помощью Inno Setup

Filename: "c:\cygwin\bin\bash.exe"; 
    Parameters: "-c c:/scripts/step1.sh paramX"; 
    Flags: shellexec waituntilterminated; 
    StatusMsg: "Running the script..." 

(это для внутренней установки, таким образом, cywin установлен, и все пути, сценарии известны)

ответ

1

Я думаю, что вы собираетесь нужно сделайте все это частью вызова cmd.exe, а затем я не уверен, что он будет делать именно то, что вам нужно/нужно.

Я смотрю документацию Inno-Setup 5 (может быть устаревшей), но я не думаю, что вам нужны флаги shellexec или waituntilterminated.

Try что-то вроде

Filename: "cmd.exe"; Parameters: "/c c:\cygwin\bin\bash -c 'c:/scripts/step1.sh paramx'" 

тестировался, пусть покупатель будет бдителен.

+0

я дам, что попробуйте ... – scunliffe 2008-10-31 20:21:10

5

Ваша проблема в том, что -c сообщает bash, чтобы прочитать инструкции по следующему параметру: , например.

c:\cygwin\bin\bash.exe -c 'for NUM in 1 2 3 4 5 6 7 8 9 10; do echo $NUM; done' 

вам просто нужно:

c:\cygwin\bin\bash.exe "/scripts/step1.sh paramX" 

Так что ваш код будет выглядеть следующим образом:

Filename: "c:\cygwin\bin\bash.exe"; 
    Parameters: "c:/scripts/step1.sh paramX"; 
    Flags: shellexec waituntilterminated; 
    StatusMsg: "Running the script..." 

Может быть, это будет полезно для кого-то еще :)

 Смежные вопросы

  • Нет связанных вопросов^_^