在 Inno Setup 中执行命令后如何保留控制台 window

How can I keep console window after executing a command in Inno Setup

我有一个像这样的脚本:

Filename: "{cmd}"; Parameters: "/C "" sqlcmd -S {code:ServerName}  -U {code:UserLOG} """ ; \
    Flags: nowait    skipifsilent

我怎样才能保留控制台 window 直到用户看到它?

我需要向用户显示该控制台上的操作结果 window。

使用pause Windows命令,如:

Filename: "{cmd}"; Parameters: "/C ""sqlcmd ... & pause"""; Flags: nowait skipifsilent

请注意,您实际上不需要通过 cmd.exe ({cmd}) 运行 sqlcmd。你可以直接运行。但是要将 sqlcmdpause 结合起来,您需要 cmd.exe.


如果命令本身需要空格(比如需要使用 {app}\MyProg.exe),请使用此语法:

Filename: "{cmd}"; Parameters: "/C """"{app}\MyProg.exe"" ... & pause"""; ...

如果您调用 cmd /K... 而不是 cmd /C... 您的安装脚本会打开一个新控制台(在控制台 window 内),该控制台不会自动关闭并且必须由用户关闭。因此,您可以读取输出。

您可以在以下位置找到完整的参数列表: https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/cmd