我试图从管道分隔文件中的第15和第16列中删除空格。
我在搜索网页后尝试了这篇文章底部的代码,但它没有用
您无法在空值表达式上调用方法。在线:19 焦炭:2 + $ .h15 = $ .h15.ToString()。替换('''') + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:InvalidOperation:(:) [],RuntimeException + FullyQualifiedErrorId:InvokeMethodOnNull
和
您无法在空值表达式上调用方法。在线:20 焦炭:5 + $ .h16 = $ .h16.ToString()。替换('''') + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:InvalidOperation:(:) [],RuntimeException + FullyQualifiedErrorId:InvokeMethodOnNul
我猜是因为它没有阅读数据,但我不明白为什么不这样做。我检查了变量并且它们是正确的。
$header = 1..42 | ForEach-Object { "h$_" }
$dialler_out_path="$dialler_file_dir\$output_file"
$dialler_path="$dialler_file_dir\$dialler_file"
(Import-Csv -Delimiter '|' -Header $header -Path $dialler_path | %{
$_.h15=$_.h15.ToString().Replace(' ','')
$_.h16=$_.h16.ToString().Replace(' ','')
}) | export-csv $dialler_out_path -NoType
答案 0 :(得分:0)
处理null对象的另一种方法(除了注释):
$_.h15 = (-join ($_.h15)).ToString().Replace(' ','')
您应该在foreach中生成输出:
(Import-Csv -Delimiter '|' -Header $header -Path $dialler_path | %{
$_.h15 = (-join ($_.h15)).ToString().Replace(' ','')
$_.h16 = (-join ($_.h16)).ToString().Replace(' ','')
$_
}) | export-csv $dialler_out_path -NoType