使用 PowerShell 将文本添加到现有 csv 文件的行
Adding text to existing csv file's rows using PowerShell
我想将 csv 文件中的文本 ;12345
添加到 VAT Number
.
列中包含 DE123456789
的每一行
示例:
header1; header2; header3; header4; header5; VAT Number; header7; Kundennummer
AB; 12345; AB123456789; 10.03.2021; GT; DE123456789; EUR
CD; 456789; 22.24; Text; SW;
AB; 12345; AB123456789; 10.03.2021; GT; DE123456789; EUR
我想要保存的文件是
header1; header2; header3; header4; header5; VAT Number; header7; Kundennummer
AB; 12345; AB123456789; 10.03.2021; GT; DE123456789; EUR; 12345
CD; 456789; 22.24; Text; SW;
AB; 12345; AB123456789; 10.03.2021; GT; DE123456789; EUR; 12345
我的尝试是这样的:
$File = 'S:\Test\test.csv'
$Check = (Import-Csv $File)."VAT Number" | ForEach-Object {
if ($Check -Contains "DE123456789") {
Select-Object @{Name='Kundennummer';Expression={'12345'}} |
Export-Csv $File -NoTypeInformation
}
}
但是文件根本没有任何变化。
我在一个问过类似问题的论坛中找到了这段代码。但是没有反馈。
好的,既然你已经为文件提供了足够的 headers,这对你有用:
$csv = Import-Csv -Path 'D:\Test\TheInputFile.csv' -Delimiter ';'
# get an array of the column headers
$allHeaders = $csv[0].PsObject.Properties.Name
$data = foreach ($item in $csv) {
if ($item.'VAT Number' -eq 'DE123456789') { $item.Kundennummer = 12345 }
# output a new object making sure all fields are present (allbeit some will remain empty)
$item | Select-Object $allHeaders
}
$data | Export-Csv -Path 'D:\Test\TheNewFile.csv' -Delimiter ';' -NoTypeInformation
我想将 csv 文件中的文本 ;12345
添加到 VAT Number
.
DE123456789
的每一行
示例:
header1; header2; header3; header4; header5; VAT Number; header7; Kundennummer
AB; 12345; AB123456789; 10.03.2021; GT; DE123456789; EUR
CD; 456789; 22.24; Text; SW;
AB; 12345; AB123456789; 10.03.2021; GT; DE123456789; EUR
我想要保存的文件是
header1; header2; header3; header4; header5; VAT Number; header7; Kundennummer
AB; 12345; AB123456789; 10.03.2021; GT; DE123456789; EUR; 12345
CD; 456789; 22.24; Text; SW;
AB; 12345; AB123456789; 10.03.2021; GT; DE123456789; EUR; 12345
我的尝试是这样的:
$File = 'S:\Test\test.csv'
$Check = (Import-Csv $File)."VAT Number" | ForEach-Object {
if ($Check -Contains "DE123456789") {
Select-Object @{Name='Kundennummer';Expression={'12345'}} |
Export-Csv $File -NoTypeInformation
}
}
但是文件根本没有任何变化。
我在一个问过类似问题的论坛中找到了这段代码。但是没有反馈。
好的,既然你已经为文件提供了足够的 headers,这对你有用:
$csv = Import-Csv -Path 'D:\Test\TheInputFile.csv' -Delimiter ';'
# get an array of the column headers
$allHeaders = $csv[0].PsObject.Properties.Name
$data = foreach ($item in $csv) {
if ($item.'VAT Number' -eq 'DE123456789') { $item.Kundennummer = 12345 }
# output a new object making sure all fields are present (allbeit some will remain empty)
$item | Select-Object $allHeaders
}
$data | Export-Csv -Path 'D:\Test\TheNewFile.csv' -Delimiter ';' -NoTypeInformation