teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

作成途中で送信したため訂正

2020/11/28 11:36

投稿

CM8IclfMMgeXJve
CM8IclfMMgeXJve

スコア1

title CHANGED
@@ -1,1 +1,1 @@
1
- PowerShell:Import-Csvの返却値から空白文字(半角スペース)のみのデータかを判定したい
1
+ PowerShell:Import-Csvの返却値から空白文字(半角スペース)と空文字切り分けて判定したい
body CHANGED
@@ -1,19 +1,19 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
3
  powershellを独学で勉強中です。
4
- Import-Csvの返却値から空白文字(半角スペース)のみのデータかを判定したいです。
4
+ Import-Csvの返却値から空白文字(半角スペース)と空文字切り分けて判定したいです。
5
5
 
6
6
 
7
7
  ### 発生している問題・エラーメッセージ
8
8
 
9
- 以下のTSVファイルに対して
9
+ 以下のTSVファイルをImpot-Csvで読み込むと1行目と2行目の1列目は空文字(文字長0)が返却されます。1行目は半角スペース3桁を設定しているのですがImport-Csvで空文字が返却されるのはImport-Csvの仕様なのでしょうか。試しに3行目で半角スペース3桁を""で囲んだところ半角スペース3桁が返却されます。ただ、可能であればTSVファイルを書き換えることなく、Import-Csvの返却から空白文字(半角スペース)と空文字を切り分けて判定したいのですが、何か方法はありますでしょうか。
10
10
 
11
11
  ```
12
- 1 aaa bbb ccc
13
- 2 ddd eee #1列目は半角スペース3桁
14
- 3 " " fff ggg
15
- 4 hhh iii #1列目は空文字
16
12
 
13
+
14
+ 1 aaa bbb #1列目は半角スペース3桁
15
+ 2 ccc ddd #1列目は空文字
16
+ 3 " " eee fff
17
17
  ```
18
18
 
19
19
 
@@ -25,16 +25,43 @@
25
25
  Import-Csv $1 -Delimiter "`t" -Header "AAA","BBB","CCC" -Encoding UTF8
26
26
  }
27
27
 
28
+
28
29
  $tsvfile = GetTsvfile
29
30
 
30
- $KARI3 = $tsvfile | ? {[String]::IsNullOrWhiteSpace($_.AAA)}
31
+ $TSVDATA = $tsvfile | ? {[String]::IsNullOrWhiteSpace($_.AAA)}
32
+ $TSVDATA
31
33
 
34
+ Write-Output "---文字長---"
35
+ $TSVDATA[0].AAA.Length
36
+ $TSVDATA[1].AAA.Length
37
+ $TSVDATA[2].AAA.Length
38
+
32
39
  ```
33
40
 
41
+ <結果>
34
- ### 試したこと
42
+ AAA BBB CCC
43
+ --- --- ---
44
+ aaa bbb
45
+ ccc ddd
46
+ eee fff
47
+ ---文字長---
48
+ 0
49
+ 0
50
+ 3
35
51
 
36
- ここに問題に対して試したことを記載してください。
37
52
 
38
53
  ### 補足情報(FW/ツールのバージョンなど)
39
54
 
40
- ここにより詳細な情報を記載してください。
55
+ PS > $PSVersionTable
56
+
57
+ Name Value
58
+ ---- -----
59
+ PSVersion 7.0.3
60
+ PSEdition Core
61
+ GitCommitId 7.0.3
62
+ OS Darwin 19.6.0 Darwin Kernel Version 19.6.0: Mon Aug 31 22:12:52 PDT 2020; root:…
63
+ Platform Unix
64
+ PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
65
+ PSRemotingProtocolVersion 2.3
66
+ SerializationVersion 1.1.0.1
67
+ WSManStackVersion 3.0