Powershell日志写入和抛出在同一行中

Powershell日志写入和抛出在同一行中,powershell,Powershell,如何编写日志文件,并在同一行中抛出 Function LogWrite { Param ([string]$logstring) Add-content $Logfile -value $logstring } 这是可行的,但在代码中看起来不太好: 未安装LogWrite$ProgramName 抛出$ProgramName Not Installed如果您担心重复$ProgramName Not Installed消息,可以将该消息存储在变量中并重新使用 $ms

如何编写日志文件,并在同一行中抛出

      Function LogWrite
    {
   Param ([string]$logstring)

 Add-content $Logfile -value $logstring
}
这是可行的,但在代码中看起来不太好:

未安装LogWrite$ProgramName
抛出$ProgramName Not Installed

如果您担心重复$ProgramName Not Installed消息,可以将该消息存储在变量中并重新使用

$msg = "$ProgramName Not Installed"
LogWrite $msg
throw $msg

为什么它需要在同一条线上?把抛出放在日志写入行之后。除了@Rynant的评论,我建议您首先阅读关于抛出异常的内容。返回代码可能比完整的异常更合适。Thx,如何在日志文件中的每个条目添加时间戳?你知道吗Thx,如何在日志文件中的每个条目添加时间戳?你知道吗@Bendo1984在日志写入函数中,在添加内容行之前添加类似$logstring=Get Date.ToString'yyyy-MM-dd HH:MM:ss.fff'+$logstring的内容。有关格式帮助,请参见:Thx的很多功能都很完美-您是否也认为我应该使用exitcode而不是throw?@Bendo1984我认为这取决于您正在做什么。但是,每当我使用抛出时,抛出都包含在具有[CmdLetBinding]属性的函数中运行关于函数的帮助\U CmdletBindingAttribute进行解释,这样可以忽略错误,例如:run MyFunction'test'-ErrorAction SilentlyContinueB但我不希望它继续