実現したいこと
差分したファイル名をFileName列に表示させたいです。
それぞれファイル内容とファイル名を出すことは出来ますが、差分したファイル名とテキストの内容の表示されません。どうすれば一致できるのでしょうか。
ご教示いただけると幸いです。
差分対象($dir.listの中身)
Folder1 Folder2 ------- ------- C:\Dir1\Folder1\File1.txt C:\Dir1\Folder2\File1-2.txt C:\Dir1\Folder1\File2.txt C:\Dir1\Folder2\File2-2.txt
$diff.listの中身
FileName1 Data Result --------- ---- ------ test1 == test1 => test <= test2 => test22 <=
表示させたい結果
(例)Folder1内の各ファイルのテキスト内容と一致している場合は、Folder1内のファイル名表示 一致していない値は、Folder2内の各ファイルのテキスト内容と一致している場合、Folder2内のファイル名表示 FileName Data Result ---------- ---- ------ File1.txt test1 == File1.txt test1 => File1-2.txt test <= File2.txt test2 => File2-2.txt test22 <=
試したこと1
『Replaceメソッド』で以下の条件FileName列に表示させることは出来ましたが、ファイル名を一致させる条件は一致出来ておりません。
※一部ソースを省略してます。
powershell
1 foreach ($d in $diff.list) { 2 foreach ($d2 in $dir.list) { 3 if (($d.Result -eq "==")-and ((Get-Content $d2.Folder1) -eq $d.Data)) { 4 $diff.Replace("==",'1') 5 }elseif (($d.Result -eq "<=")-and ((Get-Content $d2.Folder1) -eq $d.Data)) { 6 $diff.Replace("<=",'2') 7 }elseif (($d.Result -eq "=>")-and ((Get-Content $d2.Folder2) -eq $d.Data)) { 8 $diff.Replace("=>",'3') 9 } 10 } 11 }
試したこと2
『試したこと1』とは別に作成したところ以下の条件でファイル名をFileName列に表示させることは出来ましたが、ファイル名File2.txtしか表示できません。。
※一部ソースを省略してます。
powershell
1 if ($dir.list.Folder1.Split("\")[-1] -eq $dir.list.Folder2.Split("\")[-1]) { 2 $t = (Get-Content $dir.list.Folder1) 3 $s = (Get-Content $dir.list.Folder2) 4 $diffResult = Compare-Object $t $s -IncludeEqual 5 $diffResult | ft -a -wr @{label=”Line”;expression={$_.inputobject.readcount}},* 6 for ($i = 0; $i -lt $diffResult.Count; $i++) { 7 $filename = $dir.list.Folder1.Split("\")[-1] 8 } 9 } 10 11foreach ($d2 in $diffResult) { 12 foreach ($f in $filename) { 13 $diff.Add($f,$d2.inputobject.readcount,$d2.InputObject,$d2.SideIndicator) 14 }}
追記
・質問内容の変更・追記 2021.08.25
・試したこと2の追加 2021.08.30
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。