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 工作。
-
-
Exec vs ExecWait vs ExecShell vs nsExec::Exec vs nsExec::ExecToLog vs nsExec::ExecToStack vs ExecDos vs ExeCmd
Execute Command-Line Command from NSIS
有人有什么建议吗? TIA.
请注意,我已经找到问题所在。我以为 nsExec
主要使用命令行,但你必须从 cmd:
开始
nsExec::ExecToStack 'cmd /c "@echo ServerPort = 2003 > config.dat"'
详情请看:
Execute Command-Line Command from NSIS
请注意,我正在尝试创建一个数据文件作为安装脚本的一部分。这是我正在使用的:
# 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 工作。
Exec vs ExecWait vs ExecShell vs nsExec::Exec vs nsExec::ExecToLog vs nsExec::ExecToStack vs ExecDos vs ExeCmd
Execute Command-Line Command from NSIS
有人有什么建议吗? TIA.
请注意,我已经找到问题所在。我以为 nsExec
主要使用命令行,但你必须从 cmd:
nsExec::ExecToStack 'cmd /c "@echo ServerPort = 2003 > config.dat"'
详情请看:
Execute Command-Line Command from NSIS