Преобразовать (Get-Date) в текст, чтобы использовать его для имен файлов в Powershell - PullRequest
0 голосов
/ 06 августа 2020

Здравствуйте, мои полезные друзья!

У меня проблема (снова) ... да.

Я хочу установить дату исправления (в начале моего скрипта) и использовать это исправить дату в разных именах папок и CSV-файлов.

$Date = '{0:yyyyMMdd_hh:mm:ss}' -f (Get-Date)
Write-Host "The script was started $Date"

=CODE=

#Version 1
$fileOut = Join-Path -Path $path -ChildPath ("$Date.csv")
$csv| Export-Csv -Path $fileOut -Delimiter ";" -NoTypeInformation

#Result: No csv-file is written

Меня злит то, что если я скажу $ date = "TEXT", это сработает ...

$Date = "TEXT"
Write-Host "The script was started $Date"

$fileOut = Join-Path -Path $tsvEingang -ChildPath ("$Date.csv")
$MosaicSummary | Export-Csv -Path $fileOut -Delimiter "`t" -NoTypeInformation

#Result: The writtens csv-file-name is TEXT.csv

Итак, как я могу преобразовать дату в пригодный для использования текст?!

Ответы [ 2 ]

1 голос
/ 06 августа 2020

Тире вполне приемлемы в именах файлов, поэтому, если вам нужен какой-то разделитель, попробуйте что-то вроде этого:

    $Date = '{0:yyyy-MM-dd-hhmmss}' -f (Get-Date)
1 голос
/ 06 августа 2020

Обычно вы удаляете из даты и времени все, что не является числом.

$Date = '{0:yyyyMMddhhmmss}' -f (Get-Date)

Это даст вам что-то вроде этого:

20200806024229

Это действительное имя файла / имя папки. Использование: (двоеточие) в имени файла не допускается.

...