【发布时间】:2021-03-10 12:21:12
【问题描述】:
我想将 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
}
}
但文件根本没有发生任何事情。
我在一个有人问过类似问题的论坛中找到了这段代码。但是没有反馈。
【问题讨论】:
-
您知道您的 CSV 文件缺少
CD行中的一列,不是吗?另外,您的问题是关于在文件中添加一个没有标题的新列.. -
@Theo 关于列名,您是对的。因为我现在正在准备这个文件,所以我在文件中添加了一个额外的列(并且刚刚将它编辑到 qeustion)。以 CD 开头的行实际上更短。他们的列更少。我知道这很奇怪——这就是所提供的文件和数据的样子。这与我 1 小时前的另一个问题直接相关,该问题还没有解决。
标签: powershell insert contains import-csv