6

我需要对从 csv 导入对象中提取的每个值运行一个 trim 方法。没有尝试过类似下面的方法,但对我来说,我不想在每个传递给函数的变量的末尾定义一个修剪命令。

$csvobj = "c:\somestuff.csv"

foreach ($csvitem in $csvobj) {
$csvitem.value1.trim()
$csvitem.value2.trim()
}

提前谢谢,SS

4

3 回答 3

8

这将修剪 csv 文件中的所有值并将结果分配给 $csv。

$csv = Import-Csv c:\somestuff.csv | Foreach-Object {
   $_.PSObject.Properties | Foreach-Object {$_.Value = $_.Value.Trim()}  
}
于 2013-06-19T06:45:23.017 回答
1

这是对上述接受的答案的轻微修改。这会从当前文件夹中的所有 .csv 文件中删除所有前导/尾随空格。希望能帮助到你!

gci -filter *.csv | foreach {
    echo $_.NAME
    $csv = Import-Csv $_.NAME
    $csv | Foreach-Object {   
        $_.PSObject.Properties | Foreach-Object { $_.Value = $_.Value.Trim() } 
    }
    $csv | Export-Csv $_.NAME -NoTypeInformation 
}
于 2014-05-30T17:58:03.063 回答
1

你可以试试这个:

$a = import-csv "c:\somestuff.csv"
$a | % {$b=$_;$_.psobject.Properties | % {$c=$_.name ;$b."$c"=($b."$c").trim()}}

首先:我将所有行导入到$a.

第二:在第一个循环中,我读取每个对象(每个 CSV 行),然后对于第二个循环中的每个对象,我读取每个属性,然后我可以修剪每个 var。

于 2013-06-19T06:34:51.620 回答