Используйте метод stati c [datetime]::ParseExact()
для анализа вашей строки в формате dd-MM-yyyy HH:mm
, затем добавьте один час с другим методом stati c [datetime]::AddHours()
. Я также добавил пропущенный 0
к вашему году, чтобы он стал 09-04-2020 05:12
вместо 09-04-202 05:12
. Вы можете использовать [datetime] | Get-Member -Static
, чтобы найти эти методы c.
Import-Csv -Path .\data.csv | ForEach-Object {
$date = [datetime]::ParseExact($_.Timeraised, "dd-MM-yyyy HH:mm", $null)
[PSCustomObject]@{
Timeraised = $date.AddHours(1).ToString("dd-MM-yyyy HH:mm")
}
} | Export-Csv -Path .\output.csv -NoTypeInformation -UseQuotes Never
# Remove -UseQuotes Never if you are not using PowerShell 7
Или с перечислением foreach
вместо Foreach-Object
:
& {
foreach ($row in Import-Csv -Path .\data.csv)
{
$date = [datetime]::ParseExact($row.Timeraised, "dd-MM-yyyy HH:mm", $null)
[PSCustomObject]@{
Timeraised = $date.AddHours(1).ToString("dd-MM-yyyy HH:mm")
}
}
} | Export-Csv -Path .\output.csv -NoTypeInformation -UseQuotes Never
# Remove -UseQuotes Never if you are not using PowerShell 7
Что даст следующее выходной CSV:
Timeraised
9/04/2020 6:12
Выше также используются эти командлеты для импорта и экспорта файлов CSV:
Вы также можете ознакомиться с документацией MSDN по вышеуказанным. NET методам: