如果我沒有正確格式化這篇文章,請原諒,我是 StackOverflow 的新手 - 對 Powershell 中的腳本撰寫有點新。
我正在嘗試在一個生成訪問代碼的系統和另一個獲取它的系統之間建立一個介面。生成的 CSV 如下所示:
生成的檔案的日期格式為 ddMMyy,但拾取它的系統需要格式為 YYYY-MM-DD HH:MM:SS 幸運的是時間應該始終相同:23:59:00
我試圖將其分解為首先更改日期,然后我需要將時間附加到最后的欄位中。
使用這個答案,我設法撰寫了以下行,當粘貼到 powershell 視窗中時,我需要它輸出日期:
PS C:\temp> 匯入-Csv "C:\temp\codes3.csv" | ForEach{[datetime]::ParseExact($_."When to Cancel User","ddMMyy",$null).ToString("yyyy-MM-dd")} 2022-10-25 2022-10-25 2022- 10-25 2022-10-25 2022-10-25 2022-10-25 PS C:\temp>
這是完美的 - 但我無法弄清楚如何將其寫回我的 CSV 檔案。當我添加
| Export-csv 'C:\temp\codes4.csv' -notype
到字串的末尾,它實際上并沒有更新日期。保存的檔案與原始檔案完全相同。知道我做錯了什么嗎?
我還需要在日期末尾附加“23:59:00”,但我不確定如何。您可能有任何建議將不勝感激!
uj5u.com熱心網友回復:
#Load csv
$csv = import-csv [path]
#Update date/time format
$csv | %{
$_."When to Cancel User" = ([datetime]::ParseExact($_."When to Cancel User","ddMMyy",$null).ToString("yyyy-MM-dd")) " 23:59:00"
}
#Write new data to disk
$csv | export-csv [path]
uj5u.com熱心網友回復:
您必須確保將值存盤在 ForEach 回圈中:
$csv = Import-Csv "E:\users\temp\test.csv"
$csv | ForEach-Object {$_."When to Cancel User" = (([datetime]::ParseExact($_."When to Cancel User","ddMMyy",$null).ToString("yyyy-MM-dd") " 23:59:00"))}
$csv | Export-Csv "E:\users\temp\test_output.csv" -NoTypeInformation
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/521950.html
標籤:电源外壳CSV
