前提・実現したいこと
powershellを独学で勉強中です。
Import-Csvの返却値から空白文字(半角スペース)と空文字を切り分けて判定したいです。
発生している問題・エラーメッセージ
以下のTSVファイルをImpot-Csvで読み込むと1行目と2行目の1列目は空文字(文字長0)が返却されます。1行目は半角スペース3桁を設定しているのですがImport-Csvで空文字が返却されるのはImport-Csvの仕様なのでしょうか。試しに3行目で半角スペース3桁を""で囲んだところ半角スペース3桁が返却されます。ただ、可能であればTSVファイルを書き換えることなく、Import-Csvの返却から空白文字(半角スペース)と空文字を切り分けて判定したいのですが、何か方法はありますでしょうか。
1 aaa bbb #1列目は半角スペース3桁 2 ccc ddd #1列目は空文字 3 " " eee fff
ソースコード抜粋
function GetTsvfile { Import-Csv $1 -Delimiter "`t" -Header "AAA","BBB","CCC" -Encoding UTF8 } $tsvfile = GetTsvfile $TSVDATA = $tsvfile | ? {[String]::IsNullOrWhiteSpace($_.AAA)} $TSVDATA Write-Output "---文字長---" $TSVDATA[0].AAA.Length $TSVDATA[1].AAA.Length $TSVDATA[2].AAA.Length
<結果>
AAA BBB CCC
aaa bbb ccc ddd eee fff
---文字長---
0
0
3
補足情報(FW/ツールのバージョンなど)
PS > $PSVersionTable
Name Value
PSVersion 7.0.3
PSEdition Core
GitCommitId 7.0.3
OS Darwin 19.6.0 Darwin Kernel Version 19.6.0: Mon Aug 31 22:12:52 PDT 2020; root:…
Platform Unix
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/05 06:04