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

问题描述 投票:1回答:1

我正在使用高级安装程序构建安装程序,并且在尝试将日期添加到日志文件时遇到了问题。我尝试使用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,因为在卸载或重新安装时会覆盖日志。

cmd windows-installer installer msiexec advanced-installer
1个回答
1
投票

高级安装人员:对不起,我看到我一定有误会。您正在尝试从Advanced Installer中设置日志文件名。快看看吧。您在哪里在工具中指定此命令行?请注意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?。专用PowerShell模块使Windows Installer操作不那么笨重。


一些链接:

© www.soinside.com 2019 - 2024. All rights reserved.