想法是以静默模式运行 NSIS 脚本到远程机器,一旦安装成功完成,然后将日志文件返回到主机。
我有很多 Detailprint
命令消息显示脚本的进度。现在的问题是我如何将这些消息保存到日志文件中。我正在研究这个 http://nsis.sourceforge.net/Dump_log_to_file,但它说它在静音模式下不起作用。
最佳答案
我使用这种方法来保存日志。我不知道这是否是最好的方法,但对我来说效果很好。
!ifndef DEBUG_MODE
!define DEBUG_MODE true
!endif
!define LOGFILE "$TEMP\my_logfile.log"
!if ${DEBUG_MODE} == true
!define DetailPrint '!insertmacro _debugMsg'
!else
!define DetailPrint '!insertmacro _nodebugMsg'
!endif
!macro _debugMsg MSG
push $3
push $2
push $1
push $0
push $R0
strcpy $R0 "${MSG}"
ClearErrors
FileOpen $1 ${LOGFILE} a
FileSeek $1 0 END
IfErrors +8
${GetTime} "" "L" $0 $0 $0 $0 $0 $2 $3
FileWrite $1 "$0:$2:$3$\t"
FileWrite $1 "${__FUNCTION__}$\t"
FileWrite $1 "$R0"
FileWrite $1 "$\t(${__FILE__},${__FUNCTION__},${__LINE__})"
FileWrite $1 "$\n"
FileClose $1
pop $R0
pop $0
pop $1
pop $2
pop $3
!macroend
!macro _nodebugMsg _MSG
;you can put here nothing or you can put the regular DetailPrint
DetailPrint "${MSG}"
!macroend
之后你只需要找到并用 ${DetailPrint} 替换 DetailPrint
关于deployment - 如何在 NSIS 脚本的文件中保存 DetailPrint 命令消息?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9234402/