问题描述
我想要实现的是使用 Get-ChildItem 属性在列目录名下列出主目录及其子目录(代码如下所示)。
这是我在 powershell 中编写的代码:
Get-ChildItem -Path C:\Users\USER\Desktop\test -Recurse | Select-Object directoryname,Name,LastWriteTime,CreationTime | Export-Csv -Path 'C:\Users\USER\Desktop\filetxt.csv' -Encoding ascii -NoTypeinformation
如您所见,文件夹 1 和文件夹 2 的目录名称丢失,应该采用与路径相同的名称。同样对于 SubFolder1,目录名称应为 Main Path\Folder1 等...我的预期结果如下:
有人可以帮我找到以下问题的解决方案吗?谢谢
解决方法
文件夹没有属性“目录名”。您可以使用带有 Split-Path
的计算属性来提取您想要的信息。
Get-ChildItem -Path D:\sample\test-files -Recurse |
Select-Object -Property @{Name='Path';Expression={Split-Path -Path $_.FullName -Parent}},Name,LastWriteTime,CreationTime,@{Name='Extension';Expression={if (-not $_.PSIsContainer) {$_.Extension}}}
顺便说一句:文件夹实际上没有“LastWriteTime”。它们显示了它们包含的最新文件中的“LastWriteTime”。 ;-)