前提
お世話になります。
PowerShellにて、CSVファイルを「Import-Csv」にて"PsCustomObject"に変換した後、
その"PsCustomObject"を「Select-Object」し、その中で条件分岐したいと考えています。
今はSelect-Objectの中ではなく、その下に書いたFor文で条件分岐していますが、
PsCustomObjectの中身が1行だけだとFor文が回らない現象に見舞われているため、Select-Objectに条件を組み込みたいです。
実現したいこと
・PowerShellのSelect-Object上で条件分岐を行いたいです。
・列の値に「0」が入っていたら「1」を、「1」が入っていたら「0」を、というように相互変換したいです。
現在のソースコード
ps1
1 $CsvObj = Import-Csv -Encoding Default C:\a.csv #ここでCSVをインポートし、PSCustomObjectに変換しています。 2 $CsvObj = $CsvObj | #ここでSelect-Objectしています。 3 Select-Object 4 @{label= '名前'; expression = {$_.'名前'}}, 5 @{label='区分1'; expression={$_.'区分1'}}, #この「区分1」列に"0"か"1"が入っています。 6 7#ここで条件分岐させています。具体的には全行回しで0↔1相互変換を行っています。 8 for($i = 0; $i -lt $CsvObj.Count; $i++){ 9 if($CsvObj[$i].区分1 -eq '0'){ 10 $CsvObj[$i].区分1 = '1' 11 }elseif($CsvObj[$i].区分1 -eq '1'){ 12 $CsvObj[$i].区分1 = '0' 13 } 14 }
お知恵を貸していただけますと幸いです。
回答1件
あなたの回答
tips
プレビュー