在PowerShell字符串中包含日期时间

时间:2015-03-09 10:04:18

标签: powershell

我目前正在将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
}

我试过这个,在另一个Stack Overflow帖子上回答:

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

但是这会返回错误:

  

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

我仍然在使用PowerShell找到我的脚,所以任何指针都会感激不尽。

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

假设$ LogFileLocation是一个有效的路径,以下内容应该可以正常工作

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