将日期添加到安装程序日志文件

时间:2019-04-05 20:04:05

标签: cmd windows-installer installer msiexec advanced-installer

我正在使用高级安装程序来构建安装程序,并且在尝试将日期添加到日志文件时遇到了问题。我尝试使用有效的cmd命令,但是将其添加到MSI命令行后,所有日期值均显示为空白。以下是我为MSI传递的参数

/L*V "C:\Log_%date:~4,2%.%date:~7,2%.%date:~10,4%-%time:~0,2%.%time:~3,2%.%time:~6,2%.log"

我们正在尝试使日志为 Log_04.05.2019-15.03.45.log 而不是 Log.log ,因为在卸载或在卸载过程中日志会被覆盖重试安装。

1 个答案:

答案 0 :(得分:1)

  

高级安装程序 :对不起,我发现我一定被误解了。您正在尝试从“高级”中设置日志文件名   安装程序。快看。您在工具中的哪里指定此命令行?请注意,setting the logging policy for "Global Logging" will ensure unique log file names和每个MSI操作都记录在TMP中。


澄清 :看来您不想写入日志,而是要控制日志文件本身的文件名?


PowerShell :关于这种事情,我发现批处理文件比较笨拙。您可以通过Powershell调用安装吗?我并没有真正使用PowerShell,但是看到它可以使用.NET,也许对C#调用进行简单转换就可以解决问题?

您想要类似的东西: "Log_04.05.2019-15.03.45.log" ,因此您可以在C#中尝试:

Console.WriteLine("Log_" + DateTime.Now.ToString("dd.MM.yyyy-HH.mm.ss") + ".log");

Here is a blog on using PowerShell with Windows Installer,请参阅此PowerShell代码段的底部(再次,我不为此目的使用PowerShell):

$DataStamp = get-date -Format yyyyMMddTHHmmss
$logFile = '{0}-{1}.log' -f $file.fullname,$DataStamp

$MSIArguments = @(
    "/i"
    ('"{0}"' -f $file.fullname)
    "/qn"
    "/norestart"
    "/L*v"
    $logFile
)
Start-Process "msiexec.exe" -ArgumentList $MSIArguments -Wait -NoNewWindow 

  

也许也有关于Windows Installer PowerShell Module(希思·斯图尔特)的读物,因为与之相关联   回答:   How can I use powershell to run through an installer?。   进行Windows Installer操作的专用PowerShell模块   不太笨。


某些链接