PowerShell中的文件输出问题

时间:2014-05-30 16:26:13

标签: date powershell logging file-io

尝试写入分配给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将时间附加到文件名。我如何解决这个问题?

2 个答案:

答案 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