実現したいこと
foreach文を使ってリストを作成する際にIF文で条件一致した場合、一致した行を空白とし、結果を表示させたいです。
発生している問題
以下例文の場合、IF文でFolder1
を含む場合、一行空白に置換するように作りましたが、上手く表示できません。
こちらのIF文は何が原因でしょうか。
追記で『試したこと』を実施しても表示されなかったので、削除よりは**Folder1
を含んだ行のみ表示**のほうが良いのでしょうか。
Folder1含んだ行を表示させる方法を教えていただけたら幸いです。
$Dirの中身
C:\work\test1\Folder1\File1 C:\work\test1\Folder1\File2 C:\work\test1\Folder2\File1 C:\work\test1\Folder2\File2
該当のソースコード
今回、一部ソースコードを省略してます。
powershell
1foreach ($i in $Dir){ 2 if ($i -contains "Folder1") { 3 $i = $i -replace "^.*Folder2.*$", "" 4 } 5 $Directory.Add($i.Split("\")[-2],$i,"") 6 }
結果表示
testName Folder1 Folder2 --------- ------- ------- test1 C:\work\test1\Folder1\File1 test1 C:\work\test1\Folder1\File2 test1 C:\work\test1\Folder2\File1 ←空白になるはずが、そのまま表示 test1 C:\work\test1\Folder2\File2 ←空白になるはずが、そのまま表示
試したこと
if文の結果を含んでます
を表示にしても表示されませんでした。
powershell
1foreach ($i in $Dir){ 2 if ($i -contains "Folder1") { 3 Write-Host "含んでます" 4 } 5 $Directory.Add($i.Split("\")[-2],$i,"") 6 }
追記
2021.08.03 『発生している問題』『試したこと』を追記
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/08/03 04:32
2021/08/03 12:46
2021/08/05 09:11
2021/08/05 10:10
2021/08/05 10:27 編集