这是我迄今为止能够构建的内容,但如果目录中有多个文件,我会获得多个目录列表。我不确定如何按目录名称对输出进行分组。
Get-ChildItem -Path $patchesRemovedPath |
ForEach-Object {
"$($_.Directory.Name)`n $($_.Name)`n" |
Out-File "$patchesRemovedPath\Patches Removed Log.txt" -Append
}
当前输出:
Folder1 File1 Folder1 File2 Folder1 File3 Folder2 File1 Folder2 File2 Folder2 File3
我想最终得到一个.txt文件,如下所示:
Folder1 File1 File2 File3 Folder2 File1 File2 File3
答案 0 :(得分:0)
你需要2个循环:一个用于目录,另一个用于文件:
Get-ChildItem -Path 'C:\root\folder' -Directory | ForEach-Object {
"`n{0}" -f $_.Name
Get-ChildItem -Path $_.FullName -File | ForEach-Object {
' {0}' -f $_.Name
}
} | Out-File 'C:\path\to\output.txt'
为简单起见,我在这里使用PowerShell v3语法。在PowerShell v2中,您必须使用Where-Object
过滤器将Get-ChildItem
结果分别限制为文件夹和文件。