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

Cmd 将日期添加到安装程序日志文件,cmd,installation,windows-installer,advanced-installer,Cmd,Installation,Windows Installer,Advanced Installer,我正在使用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

我正在使用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,因为在卸载或重试安装时会覆盖日志

高级安装程序:对不起,我看我一定是误解了。您正在尝试从Advanced中设置日志文件名 安装程序。我会快速看一看。在工具中的何处指定此命令行?请注意,每个MSI操作都记录在TMP中


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


PowerShell:我发现批处理文件对于这样的东西来说很笨拙。您可以通过Powershell调用安装吗?我并不真正使用PowerShell,但考虑到它可以使用.NET,也许简单地转换一下这个C#调用就可以了

您需要类似以下内容:
“Log\u 04.05.2019-15.03.45.Log”
,因此您可以在C中尝试:

Console.WriteLine(“Log_u”+DateTime.Now.ToString(“dd.MM.yyy HH.MM.ss”)+“.Log”);
,请参阅此PowerShell代码段的底部(同样,我不为此目的使用PowerShell):

$DataStamp=获取日期-格式yyyyMMddTHHmmss
$logFile='{0}-{1}.log'-f$file.fullname,$DataStamp
$MSI参数=@(
“/i”
(“{0}”-f$file.fullname)
“/qn”
“/norestart”
“/L*v”
$logFile
)
启动进程“msiexec.exe”-ArgumentList$msiaarguments-Wait-nonewindow

也许还可以阅读一下《通用》中的(希思·斯图尔特) 答复: . 用于Windows Installer操作的专用PowerShell模块 不那么笨重


某些链接

  • 各种MSI日志记录方法:

在高级安装程序视图中的何处指定此命令行?你们运行什么版本?@SteinÅsmul我猜他在构建页面中设置了它。如果您的项目输出设置为包含MSI的EXE包(同一视图中的选项可用),则还有一个额外的“MSI命令行”字段可用。您好,Stein,谢谢您的回答,我正在尝试在“构建”页面的“高级安装程序”中设置它,因为我正在让高级安装程序创建引导程序,所以Powershell不是一个选项。如果你不能让它正常工作,我想你应该调查这个问题。这应该为每次运行提供一个唯一的日志文件-至少。这是。和。就我个人而言,我喜欢改为设置(注册表项)。您好,Stein,似乎我只能为我们已经拥有的MSILoging属性设置静态路径。高级安装程序日期属性的格式错误,操作系统不允许。感谢您的帮助,尽管您没有设置路径,但您可以指定所需的日志记录,并且日志文件会显示在临时文件夹中。您甚至可以在安装完成后打开该日志文件,因为您可以通过属性检索其完整路径。我认为高级安装程序具有启用复选框以在安装后打开日志的功能。我想您只是在对话框中启用它。有一阵子了。您还可以添加自定义操作,将日志文件复制到由对话框按钮单击事件或类似事件触发的某个位置。