【问题标题】:Change values in a csv with PS according to predefined values根据预定义的值使用 PS 更改 csv 中的值
【发布时间】:2026-01-27 22:05:01
【问题描述】:

大家好,*ers,

再一次,我被困在一个希望可以用 PS 解决的问题:

GIS 程序将以下格式的行输出到 csv 中:

"House 5";9660.7734;1782.7454;0;0;
"House 9";9675.0684;1779.7888;0;0;
"House 8";9675.0684;1779.7888;0;0;
"House 2";9688.3779;1777.323;0;0;
"House 12";9709.5742;1772.3938;0;0;
"House 11";9709.5742;1772.3938;0;0;
"House 12";9734.2217;1771.4075;0;0;
"House 8";9755.9111;1770.4211;0;0;
"House 5";9779.0801;1770.9155;0;0;
"House 7";9779.0801;1770.9155;0;0;
"House 2";9802.7412;1770.9155;0;0;

等等……

我想保留该表格,但将第三个分号(此处为 0)之后的每一行的值更改为每行的第一个值指定的值(House XX )。要应用的值是 House 515House 8128House 23House 12

此外,列表中有“Houses”不必更改:House 9House 11House 7。最后,输出文件(同样是 csv)应如下所示:

"House 5";9660.7734;1782.7454;15;0;
"House 9";9675.0684;1779.7888;0;0;
"House 8";9675.0684;1779.7888;12;0;
"House 2";9688.3779;1777.323;8;0;
"House 12";9709.5742;1772.3938;3;0;
"House 11";9709.5742;1772.3938;0;0;
"House 12";9734.2217;1771.4075;3;0;
"House 8";9755.9111;1770.4211;12;0;
"House 5";9779.0801;1770.9155;15;0;
"House 7";9779.0801;1770.9155;0;0;
"House 2";9802.7412;1770.9155;8;0;

那么,当我为所有不同的“房屋”(也可以使用列表)提供更改值时,PS 脚本可以为我节省手动更改的工作吗?

提前致谢!

【问题讨论】:

    标签: powershell csv export


    【解决方案1】:

    所以现在是假期,但我想做一些功课:

    Import-Csv yourfile.csv -Delimiter ';' -header 'a','b','c','d','e' | % {$a=$_;switch -regex ($_.a) {.*5 {$a.d=15} .*8 {$a.d=12} "House 12" {$a.d=3} "House 2" {$a.d=8}};$_}
    

    您可以通过管道传输到 export-csv。

    【讨论】: