代码之家  ›  专栏  ›  技术社区  ›  scunliffe

如何使用inno setup将命令传递到windows中的cygwin控制台

  •  0
  • scunliffe  · 技术社区  · 16 年前

    我试过各种各样的方法,但除了能打开一个cygwin窗口外,运气不好。(包裹) ; 为了清晰起见

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

    (这是内部安装,因此安装了cywin,所有路径和脚本都是已知的)

    2 回复  |  直到 11 年前
        1
  •  5
  •   Zombo    11 年前

    你的问题是 -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..."
    

    或许这对其他人有帮助:)

        2
  •  1
  •   Ken Gentle    16 年前

    我想你需要把整个事情 cmd.exe 调用,然后我不确定它是否能满足您的需要。

    我正在看inno setup 5文档(可能已经过时),但我不认为您需要 shellexec waituntilterminated 旗帜。

    试试像这样的

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

    未经测试,请清空。