导出目录文件名

Exporting directory file names

我正在尝试创建一个脚本,该脚本提示输入要导出到 .csv 的路径,该 .csv 显示文件夹的名称和文件夹内容的名称。类似这样,但没有模式和长度。

我想保留每个文件夹之间的空隙。

示例 -(没有 Mode/Length)

Directory: C:\Users\khalifam\Desktop\TestFolder1


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----       24/07/2019     15:50                TestFolder2
d-----       24/07/2019     15:50                TestFolder3


    Directory: C:\Users\khalifam\Desktop\TestFolder1\TestFolder2


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       30/05/2019     11:05           1696 EC2Key1.pem


    Directory: C:\Users\khalifam\Desktop\TestFolder1\TestFolder3


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       31/05/2019     16:16          22027 Dropbox-f

到目前为止我的脚本:

$FilePathLocation = Read-Host -Prompt 'Please enter the the path of the fold you wish to export'

Set-Location $FilePathLocation

gci -Recurse | select DirectoryName, FullName | FT

当前输出:

Please enter the the path of the fold you wish to export: C:\Users\khalifam\Desktop\TestFolder1

DirectoryName                                     FullName                                                                            Root
-------------                                     --------                                                                            ----
                                                  C:\Users\khalifam\Desktop\TestFolder1\TestFolder2                                   C:\
                                                  C:\Users\khalifam\Desktop\TestFolder1\TestFolder3                                   C:\
C:\Users\khalifam\Desktop\TestFolder1\TestFolder2 C:\Users\khalifam\Desktop\TestFolder1\TestFolder2\EC2Key1.pem
C:\Users\khalifam\Desktop\TestFolder1\TestFolder3 C:\Users\khalifam\Desktop\TestFolder1\TestFolder3\Dropbox-CCEN-Course.docx

先递归枚举目录,然后不递归处理每个目录的内容。请注意,由此生成的输出不是实际的 CSV。

Get-ChildItem $FilePathLocation -Directory -Recurse | ForEach-Object {
    "{0}`n" -f $_.FullName
    Get-ChildItem $_.FullName |
        Select-Object Name, LastWriteTime |
        Format-Table |
        Out-String
} | Set-Content 'output.txt'

另请注意,这需要 PowerShell v3 或更新版本。如果您坚持使用旧版本,则需要删除参数 -Directory 并改用 Where-Object 过滤器。

你拥有大部分。

$FilePathLocation = Read-Host -Prompt 'Please enter the the path of the fold you wish to export'

Get-ChildItem $FilePathLocation -Recurse | select DirectoryName, FullName | Export-Csv C:\PathStuff.csv

如果要导出为 csv,则不能使用 Format-Table,它会弄乱输出