nsExec::ExecToStack 当 运行ning NSIS 脚本尝试 运行 DOS 命令时失败

nsExec::ExecToStack fails when running NSIS script tring to run DOS command

请注意,我正在尝试创建一个数据文件作为安装脚本的一部分。这是我正在使用的:

  # Create config.dat based on user`s previous selection
  nsExec::ExecToStack '"$SYSDIR\cmd.exe" @echo ServerPort = 2003 > $INSTDIR\config.dat'
  Pop [=12=] # return value/error/timeout
  Pop  # printed text, up to ${NSIS_MAX_STRLEN}
  DetailPrint '$SYSDIR\cmd.exe "@echo ServerPort = 2003 > $INSTDIR\config.dat" printed: '
  DetailPrint ""
  DetailPrint "       Return value: [=12=]"
  DetailPrint ""

当我运行脚本时,上面的returns一个0,所以我认为它应该可以工作但是当我检查安装目录时我发现没有config.dat文件已创建。

另外,我试过这个命令,

nsExec::ExecToStack '@echo ServerPort = 2003 > $INSTDIR\config.dat'

但是当我使用它时显示打印:

Return value: error

这是我看过的网站,但我仍然不清楚如何让 nsExec 工作。

有人有什么建议吗? TIA.

请注意,我已经找到问题所在。我以为 nsExec 主要使用命令行,但你必须从 cmd:

开始
nsExec::ExecToStack  'cmd /c "@echo ServerPort = 2003 > config.dat"'

详情请看:

Execute Command-Line Command from NSIS