Как передавать команды на консоль Cygwin в Windows с помощью Inno Setup - PullRequest
0 голосов
/ 31 октября 2008

Я пробовал варианты этого, но не повезло, кроме возможности запустить окно Cygwin. (для ясности ; )

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

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

Ответы [ 2 ]

5 голосов
/ 09 февраля 2013

Ваша проблема в том, что -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..."

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

1 голос
/ 31 октября 2008

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

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

Попробуйте что-то вроде

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

Не проверено, будьте осторожны.

...