【问题标题】:Include date time within PowerShell string在 PowerShell 字符串中包含日期时间
【发布时间】:2018-07-24 02:21:36
【问题描述】:

我目前正在将我的 PowerShell 函数分离到一个单独的位置。

有没有办法将 $LogFileNameTimeStamp 包含在下面的函数中,这样我就不必单独声明它了?

$LogFileNameTimeStamp = "{0:yyyy-MM-dd}" -f (GET-DATE)

Function Log-File-Append
{
    Param ([string]$logstring)
    Add-content $LogFileLocation\$LogFileNameTimeStamp"_log.log" -value $logstring
}

我已经尝试过这个,在另一个 StackOverflow 帖子的回答之后:

Add-content $LogFileLocation\"$($theDate.ToString('u'))_log.log" -value $logstring

但这会返回错误:

您不能在空值表达式上调用方法。

我仍在使用 PowerShell 找到自己的立足点,因此我们将不胜感激地收到任何指点。

【问题讨论】:

  • 看起来 $theDate 可能为空。您可以尝试在 Powershell ISE 中运行它并在语句之前添加一个断点,检查此特定变量是否为空。

标签: powershell


【解决方案1】:

假设 $LogFileLocation 是一个有效路径,以下应该可以工作

Function Log-File-Append
{
    Param ([string]$logstring)
    Add-Content "$LogFileLocation\$((Get-Date).ToString('yyyy-MM-dd'))_log.log" -value $logstring
}

【讨论】:

    【解决方案2】:

    您可以使用 .NET System.IO.Path.Combine 来形成有效的 Windows 路径,而不是手动进行。

    Add-content ([IO.Path]::Combine($LogFileLocation,(("{0:yyyy-MM-dd}" -f (GET-DATE)) + "_log.log"))) -value $logstring
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-04
      • 2020-08-27
      • 1970-01-01
      • 1970-01-01
      • 2012-05-23
      • 1970-01-01
      • 1970-01-01
      • 2016-10-27
      相关资源
      最近更新 更多