Powershell 按相对路径以逗号分隔列出所有文件

Powershell list all files by relative path with comma separation

使用 PowerShell,我尝试获得一个文件列表,其中相对路径以逗号分隔。

现在这是我的命令

Get-ChildItem -Recurse -Attributes !D | Group-Object -Property Directory | %{ Write-Host $_.Group }

我不知道如何为每个组输出相对路径和带逗号的文件名。

假设我们在这个文件夹中:

PS C:\Work\>

此文件夹包含以下文件夹和文件

Folder1\doc1.txt
Folder1\doc2.txt
Folder2\img1.jpg
Folder2\img2.jpg
Folder2\img3.jpg

我想要这样的输出:

Folder1\doc1.txt;Folder1\doc2.txt
Folder2\img1.jpg;Folder2\img2.jpg;Folder2\img3.jpg

您可以使用Resolve-Path -Relative命令获取相对路径。要加入,您可以使用 -join 运算符:

Get-ChildItem -Recurse -File |
Group-Object -Property Directory |
ForEach-Object {
    @(
        $_.Group |
        Resolve-Path -Relative |   # make relative path
        ForEach-Object Substring 2 # cut '.\' part
    )-join';'
}