【问题标题】:nsExec::ExecToStack fails when running NSIS script tring to run DOS commandnsExec::ExecToStack 在运行 NSIS 脚本运行 DOS 命令时失败
【发布时间】:2021-01-29 00:01:18
【问题描述】:

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

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

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

另外,我试过这个命令,

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

但是当我使用它时,显示会打印出来:

Return value: error

以下是我查看过的网站,但我仍然不清楚如何让 nsExec 正常工作。

有人有什么建议吗? TIA。

【问题讨论】:

    标签: nsis


    【解决方案1】:

    请注意,我发现了问题。我以为nsExec主要是在命令行下工作的,但是你必须从cmd开始:

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

    详情请看:

    Execute Command-Line Command from NSIS

    【讨论】:

      猜你喜欢
      • 2018-02-24
      • 1970-01-01
      • 2019-05-24
      • 1970-01-01
      • 2019-05-28
      • 2021-03-10
      • 1970-01-01
      • 2011-10-03
      • 1970-01-01
      相关资源
      最近更新 更多