2017-11-02 13 views
0

パイプ区切りファイルの列15と16の空白を削除しようとしています。パイプ区切りファイルの特定の列から空白を削除する

は、私は、Webを検索した後、この記事の下部にあるコードを試みたが、あなたがnull値の表現上のメソッドを呼び出すことはできません

で失敗しています。行:19 文字:2 + $ .h15 = $ .h15.ToString() + ~~~~~~~~~~~~~~~~(」」、 '')に置き換えます。 ~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:はInvalidOperation:(:) []、のRuntimeException + FullyQualifiedErrorId:InvokeMethodOnNull

null値の式に対してメソッドを呼び出すことはできません。行: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

問題があることのように見えますnullオブジェクトをToStringしようとしていますが、代わりにnullを扱うConvert.ToStringを実行してください –

+1

次のようにしてください: '(Import-Csv -Delimiter '|' -Header $ header -Path $ dialler_pat h | ? {$ _} | % '{... – iRon

+0

これは引き続きヌル値の例外を与えます。私はちょうど余分なパイプとコードを追加しましたか? {$ _}と同じですが、それでもエラーです。残念ながら、敏感なのでサンプルデータを投稿することはできません – dazedandconfused

答えて

0

別の方法:

$_.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 
+0

これはエラーは発生しませんでしたが、出力ファイルは空でした。 – dazedandconfused

関連する問題