使用Out-File在文件名中包含日期变量

时间:2018-05-14 21:52:12

标签: windows powershell datetime winapi powershell-remoting

我正在尝试使用Out-File在文件名中包含日期变量。 但是,如下所示获得例外

$EndDate = get-date -UFormat "%Y-%m-%d %H:%M:%S"
Out-File -FilePath "C:\output\$host-$EndDate.json

Out-File : The given path's format is not supported.
At E:\sample.ps1:442 char:69
+ ... MaxValue) | Out-File -FilePath "E:\output\$serverHostName ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OpenError: (:) [Out-File], NotSupportedException
    + FullyQualifiedErrorId : FileOpenFailure,Microsoft.PowerShell.Commands.OutFileCommand

1 个答案:

答案 0 :(得分:1)

而不是

Out-File -FilePath "C:\output\$host-$EndDate.json"

使用format (-f) operator

$EndDate = get-date -UFormat "%Y-%m-%d %H:%M:%S"
$myFileName = 'C:\output\{0}-{1}.json' -f $host, ($EndDate.ToString() -replace ':','')  -replace '\s','' 
Out-File -filepath $myFileName

此外,如果您的目录尚未存在,则可能需要使用New-Item command而不是Out-File。您的错误似乎表明在创建文件时该目录可能不可用。

New-Item -path $myFileName -Force 

比尔斯图尔特指出,$host is a reserved word,所以要小心使用它。