尝试写入分配给PowerShell中变量的日志文件,如下所示 -
代码:
$Time = Get-Date
$FileTimeStamp = (Get-Date -f MM-dd-yyyy_HH.mm.ss)
$ErrorLog | out-file $(".\Logs\" + $FileTimeStamp + "_PushLog.log") -append
"Script started at $Time" | out-file $ErrorLog -append
编译错误 -
Out-File : Cannot bind argument to parameter 'FilePath' because it is null.
At C:\OSM\Scripts\FilePush\FilePush.ps1:56 char:37
+ "Script started at $Time" | out-file <<<< $ErrorLog -append
+ CategoryInfo : InvalidData: ( [Out-File], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.OutFileCommand
我做错了什么?我到那儿了吗?它现在正确地写了一个文件而不是两个,但是日志不包含字符串&#34;会话在$ Time&#34;开始。
代码:
$Time = Get-Date
$FileTimeStamp = (Get-Date -f HH.mm.ss_MM-dd-yyyy)
$ErrorLog = out-file $(".\Logs\" + $FileTimeStamp + "_PushLog.log") -append
$ErrorLog = [io.path]::GetFileName("$ErrorLog.FullName")
"Session started at $Time" | out-file $ErrorLog -append
我尝试做的全部内容是为错误文件创建一个变量,当我想向其输出文本时,我可以参考该变量。我只希望每次脚本运行时都记录日志,但这似乎是我的问题;&#39; m将时间附加到文件名。我如何解决这个问题?
答案 0 :(得分:1)
您尚未定义$ ErrorLog。
答案 1 :(得分:1)
问题在于,当您尝试定义$ErrorLog
变量时,您会过度思考它。您只需要创建一个字符串来定义文件的位置,而不是在该行上包含所有Out-File和-Append。
$Time = Get-Date
$FileTimeStamp = (Get-Date -f MM-dd-yyyy_HH.mm.ss)
$ErrorLog = ".\Logs\$FileTimeStamp_PushLog.log"
"Script started at $Time" | out-file $ErrorLog -append