質問編集履歴
3
文法の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -108,11 +108,11 @@
|
|
108
108
|
|
109
109
|
```powershell
|
110
110
|
|
111
|
-
if ($
|
111
|
+
if ($dir.list.Folder1.Split("\")[-1] -eq $dir.list.Folder2.Split("\")[-1]) {
|
112
112
|
|
113
|
-
$t = (Get-Content $
|
113
|
+
$t = (Get-Content $dir.list.Folder1)
|
114
114
|
|
115
|
-
$s = (Get-Content $
|
115
|
+
$s = (Get-Content $dir.list.Folder2)
|
116
116
|
|
117
117
|
$diffResult = Compare-Object $t $s -IncludeEqual
|
118
118
|
|
@@ -120,7 +120,7 @@
|
|
120
120
|
|
121
121
|
for ($i = 0; $i -lt $diffResult.Count; $i++) {
|
122
122
|
|
123
|
-
$filename = $
|
123
|
+
$filename = $dir.list.Folder1.Split("\")[-1]
|
124
124
|
|
125
125
|
}
|
126
126
|
|
2
文章の追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -68,7 +68,7 @@
|
|
68
68
|
|
69
69
|
```
|
70
70
|
|
71
|
-
### 試したこと
|
71
|
+
### 試したこと1
|
72
72
|
|
73
73
|
『Replaceメソッド』で以下の条件FileName列に表示させることは出来ましたが、ファイル名を一致させる条件は一致出来ておりません。
|
74
74
|
|
@@ -100,6 +100,48 @@
|
|
100
100
|
|
101
101
|
```
|
102
102
|
|
103
|
+
### 試したこと2
|
104
|
+
|
105
|
+
『試したこと1』とは別に作成したところ以下の条件でファイル名をFileName列に表示させることは出来ましたが、ファイル名**File2.txt**しか表示できません。。
|
106
|
+
|
107
|
+
※一部ソースを省略してます。
|
108
|
+
|
109
|
+
```powershell
|
110
|
+
|
111
|
+
if ($Directory.list.Folder1.Split("\")[-1] -eq $Directory.list.Folder2.Split("\")[-1]) {
|
112
|
+
|
113
|
+
$t = (Get-Content $Directory.list.Folder1)
|
114
|
+
|
115
|
+
$s = (Get-Content $Directory.list.Folder2)
|
116
|
+
|
117
|
+
$diffResult = Compare-Object $t $s -IncludeEqual
|
118
|
+
|
119
|
+
$diffResult | ft -a -wr @{label=”Line”;expression={$_.inputobject.readcount}},*
|
120
|
+
|
121
|
+
for ($i = 0; $i -lt $diffResult.Count; $i++) {
|
122
|
+
|
123
|
+
$filename = $Directory.list.Folder1.Split("\")[-1]
|
124
|
+
|
125
|
+
}
|
126
|
+
|
127
|
+
}
|
128
|
+
|
129
|
+
|
130
|
+
|
131
|
+
foreach ($d2 in $diffResult) {
|
132
|
+
|
133
|
+
foreach ($f in $filename) {
|
134
|
+
|
135
|
+
$diff.Add($f,$d2.inputobject.readcount,$d2.InputObject,$d2.SideIndicator)
|
136
|
+
|
137
|
+
}}
|
138
|
+
|
139
|
+
```
|
140
|
+
|
103
141
|
### 追記
|
104
142
|
|
105
143
|
・質問内容の変更・追記 2021.08.25
|
144
|
+
|
145
|
+
|
146
|
+
|
147
|
+
・試したこと2の追加 2021.08.30
|
1
文章の変更、追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -2,110 +2,104 @@
|
|
2
2
|
|
3
3
|
差分したファイル名を**FileName列**に表示させたいです。
|
4
4
|
|
5
|
-
|
5
|
+
それぞれファイル内容とファイル名を出すことは出来ますが、差分したファイル名とテキストの内容の表示されません。どうすれば一致できるのでしょうか。
|
6
6
|
|
7
|
-
実行させる順番は
|
8
|
-
|
9
|
-
①差分対象のFolder1とFolder2をそれぞれ『Get-Content』でファイルの中身を表示後差分する。
|
10
|
-
|
11
|
-
②差分結果の$Result.SideIndicatorの表示を置換
|
12
|
-
|
13
|
-
③Addメソッドで作成したResutl配列に差分結果の値を各列に入れる
|
14
|
-
|
15
|
-
①の処理にファイル名の表示させる処理も追加したいと考えております。
|
16
|
-
|
17
|
-
そもそも差分対象の中身($Dir.list)にファイル名の列を追加した方が良いのでしょうか。
|
18
|
-
|
19
|
-
ご教示
|
7
|
+
ご教示いただけると幸いです。
|
20
8
|
|
21
9
|
|
22
10
|
|
23
|
-
### 差分対象($
|
11
|
+
### 差分対象($dir.listの中身)
|
24
12
|
|
25
13
|
```
|
26
14
|
|
27
|
-
Folder
|
15
|
+
Folder1 Folder2
|
28
16
|
|
29
|
-
|
17
|
+
------- -------
|
30
18
|
|
31
|
-
|
19
|
+
C:\Dir1\Folder1\File1.txt C:\Dir1\Folder2\File1-2.txt
|
32
20
|
|
33
|
-
|
21
|
+
C:\Dir1\Folder1\File2.txt C:\Dir1\Folder2\File2-2.txt
|
34
|
-
|
35
|
-
Dir2 C:\Dir1\Folder1\File2.txt C:\Dir1\Folder2\File2.txt
|
36
22
|
|
37
23
|
```
|
38
24
|
|
39
|
-
###
|
25
|
+
### $diff.listの中身
|
40
26
|
|
27
|
+
```
|
28
|
+
|
29
|
+
FileName1 Data Result
|
30
|
+
|
31
|
+
--------- ---- ------
|
32
|
+
|
33
|
+
test1 ==
|
34
|
+
|
35
|
+
test1 =>
|
36
|
+
|
37
|
+
test <=
|
38
|
+
|
39
|
+
test2 =>
|
40
|
+
|
41
|
+
test22 <=
|
42
|
+
|
43
|
+
```
|
44
|
+
|
45
|
+
### 表示させたい結果
|
46
|
+
|
47
|
+
```
|
48
|
+
|
49
|
+
(例)Folder1内の各ファイルのテキスト内容と一致している場合は、Folder1内のファイル名表示
|
50
|
+
|
51
|
+
一致していない値は、Folder2内の各ファイルのテキスト内容と一致している場合、Folder2内のファイル名表示
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
FileName Data Result
|
56
|
+
|
57
|
+
---------- ---- ------
|
58
|
+
|
59
|
+
File1.txt test1 ==
|
60
|
+
|
61
|
+
File1.txt test1 =>
|
62
|
+
|
63
|
+
File1-2.txt test <=
|
64
|
+
|
65
|
+
File2.txt test2 =>
|
66
|
+
|
67
|
+
File2-2.txt test22 <=
|
68
|
+
|
69
|
+
```
|
70
|
+
|
71
|
+
### 試したこと
|
72
|
+
|
73
|
+
『Replaceメソッド』で以下の条件FileName列に表示させることは出来ましたが、ファイル名を一致させる条件は一致出来ておりません。
|
74
|
+
|
41
|
-
一部ソースを省略してます。
|
75
|
+
※一部ソースを省略してます。
|
42
76
|
|
43
77
|
```powershell
|
44
78
|
|
45
|
-
|
79
|
+
foreach ($d in $diff.list) {
|
46
80
|
|
47
|
-
|
81
|
+
foreach ($d2 in $dir.list) {
|
48
82
|
|
49
|
-
f
|
83
|
+
if (($d.Result -eq "==")-and ((Get-Content $d2.Folder1) -eq $d.Data)) {
|
50
84
|
|
51
|
-
|
85
|
+
$diff.Replace("==",'1')
|
52
86
|
|
53
|
-
|
87
|
+
}elseif (($d.Result -eq "<=")-and ((Get-Content $d2.Folder1) -eq $d.Data)) {
|
54
88
|
|
55
|
-
|
89
|
+
$diff.Replace("<=",'2')
|
56
90
|
|
57
|
-
$
|
91
|
+
}elseif (($d.Result -eq "=>")-and ((Get-Content $d2.Folder2) -eq $d.Data)) {
|
58
92
|
|
59
|
-
$diffRe
|
93
|
+
$diff.Replace("=>",'3')
|
60
94
|
|
61
|
-
|
95
|
+
}
|
62
96
|
|
63
|
-
|
64
|
-
|
65
|
-
#$Fol1,$Fol2を比較結果後、Result配列の各列に代入
|
66
|
-
|
67
|
-
foreach ($d in $diffResult){
|
68
|
-
|
69
|
-
#SideIndicator列が『==』の場合『OK』に置換し、『<=』又は『=>』の場合『NG』に置換
|
70
|
-
|
71
|
-
if ($d.SideIndicator -eq "==") {
|
72
|
-
|
73
|
-
$d.SideIndicator = $d.SideIndicator.Replace("==","OK")
|
74
|
-
|
75
|
-
|
97
|
+
}
|
76
|
-
|
77
|
-
$d.SideIndicator = $d.SideIndicator.Replace("<=","NG")
|
78
|
-
|
79
|
-
}elseif ($d.SideIndicator -eq "=>") {
|
80
|
-
|
81
|
-
$d.SideIndicator = $d.SideIndicator.Replace("=>","NG")
|
82
98
|
|
83
99
|
}
|
84
|
-
|
85
|
-
$Result.Add("",$d.lineNo,$d.InputObject,$d.SideIndicator)
|
86
|
-
|
87
|
-
}
|
88
|
-
|
89
|
-
}
|
90
|
-
|
91
|
-
```
|
92
|
-
|
93
|
-
### 表示させたい結果($Result.listの中身)
|
94
|
-
|
95
|
-
```
|
96
|
-
|
97
|
-
Folder1File Date Result
|
98
|
-
|
99
|
-
---------- ---- ------
|
100
|
-
|
101
|
-
File1.txt test1 OK
|
102
|
-
|
103
|
-
File1.txt test NG
|
104
|
-
|
105
|
-
File2.txt test2 OK
|
106
|
-
|
107
|
-
|
108
100
|
|
109
101
|
```
|
110
102
|
|
111
103
|
### 追記
|
104
|
+
|
105
|
+
・質問内容の変更・追記 2021.08.25
|