回答編集履歴

2

コメントの

2021/07/27 12:20

投稿

kmyzr
kmyzr

スコア305

test CHANGED
@@ -188,6 +188,12 @@
188
188
 
189
189
  }
190
190
 
191
+
192
+
193
+ # 直下のフォルダ名でプロパティを追加
194
+
195
+ # 追加プロパティの値に 直下のフォルダのフルパスを除いた ファイルのパスを指定
196
+
191
197
  $Files[$i]|Add-Member $Dir.Name $($_.FullName.Replace("$($Dir.FullName)\",""))
192
198
 
193
199
 

1

追加のサンプル提示

2021/07/27 12:20

投稿

kmyzr
kmyzr

スコア305

test CHANGED
@@ -117,3 +117,99 @@
117
117
  $Directory
118
118
 
119
119
  ```
120
+
121
+
122
+
123
+
124
+
125
+
126
+
127
+ -- 追記 --
128
+
129
+ 対象フォルダ直下のフォルダ毎に
130
+
131
+ 列を作って中のファイルを盾に並べたいってことでしょうか
132
+
133
+
134
+
135
+ リストでやったほうが変換も出来て便利ですよ
136
+
137
+ サンプルおいておきます。
138
+
139
+
140
+
141
+ ```PowerShell
142
+
143
+ #対象フォルダ
144
+
145
+ $TargetName = ".\Dir"
146
+
147
+
148
+
149
+ # 対象フォルダオブジェクト化(対象フォルダの相対パス指定対応のため)
150
+
151
+ $Target = gi $TargetName
152
+
153
+
154
+
155
+ # 直下のフォルダのみ取得
156
+
157
+ $Target|ls -dir|%{
158
+
159
+ # 初回実行時にリストを用意
160
+
161
+ $Files = [System.Collections.Generic.List[pscustomobject]]::new()
162
+
163
+ }{
164
+
165
+ # 直下のディレクトリをキープ
166
+
167
+ $Dir = $_
168
+
169
+
170
+
171
+ # 再帰的に全てのファイルを取得
172
+
173
+ $Dir|ls -rec -file|%{
174
+
175
+ # インデックスをリセット
176
+
177
+ $i = 0
178
+
179
+ }{
180
+
181
+ # 指定インデックスが無ければ
182
+
183
+ if($i -ge ($Files.Count -1)){
184
+
185
+ # オブジェクトを追加
186
+
187
+ $Files.add([pscustomobject]@{})
188
+
189
+ }
190
+
191
+ $Files[$i]|Add-Member $Dir.Name $($_.FullName.Replace("$($Dir.FullName)\",""))
192
+
193
+
194
+
195
+ # インデックス カウントアップ
196
+
197
+ $i++
198
+
199
+ }
200
+
201
+ }
202
+
203
+
204
+
205
+ # 結果の出力
206
+
207
+ $Files|ft -AutoSize
208
+
209
+
210
+
211
+ # CSV変換も可能
212
+
213
+ $Files|Export-Csv -Path "$($Target.FullName)\FileList.csv" -Encoding UTF8 -NoTypeInformation
214
+
215
+ ```