我需要对从 csv 导入对象中提取的每个值运行一个 trim 方法。没有尝试过类似下面的方法,但对我来说,我不想在每个传递给函数的变量的末尾定义一个修剪命令。
$csvobj = "c:\somestuff.csv"
foreach ($csvitem in $csvobj) {
$csvitem.value1.trim()
$csvitem.value2.trim()
}
提前谢谢,SS
我需要对从 csv 导入对象中提取的每个值运行一个 trim 方法。没有尝试过类似下面的方法,但对我来说,我不想在每个传递给函数的变量的末尾定义一个修剪命令。
$csvobj = "c:\somestuff.csv"
foreach ($csvitem in $csvobj) {
$csvitem.value1.trim()
$csvitem.value2.trim()
}
提前谢谢,SS
这将修剪 csv 文件中的所有值并将结果分配给 $csv。
$csv = Import-Csv c:\somestuff.csv | Foreach-Object {
$_.PSObject.Properties | Foreach-Object {$_.Value = $_.Value.Trim()}
}
这是对上述接受的答案的轻微修改。这会从当前文件夹中的所有 .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
}
你可以试试这个:
$a = import-csv "c:\somestuff.csv"
$a | % {$b=$_;$_.psobject.Properties | % {$c=$_.name ;$b."$c"=($b."$c").trim()}}
首先:我将所有行导入到$a
.
第二:在第一个循环中,我读取每个对象(每个 CSV 行),然后对于第二个循环中的每个对象,我读取每个属性,然后我可以修剪每个 var。