Использование Out-File, чтобы иметь переменную даты в имени файла - PullRequest
0 голосов
/ 15 мая 2018

Я пытаюсь использовать 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 голосов
/ 15 мая 2018

Вместо

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

Используйте оператор формата (-f) :

$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 вместо Out-File, если ваш каталог еще не существует.Кажется, ваша ошибка указывает на то, что каталог может быть недоступен при создании файла.

New-Item -path $myFileName -Force 

Как отметил Билл Стюарт, $host является зарезервированным словом , поэтому будьте осторожны, используяэто.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...