我正在尝试使用Powershell获取给定路径的“dir”输出,但我很难尝试获得所需的格式。我是Powershell的新手,所以对我使用的命令的任何建议对我都非常有帮助。
使用的命令
$dirs = (Get-ChildItem -Recurse $path | Format-Table -HideTableHeaders | Out-String).Split("`n")
我得到的输出
Directory: D:\GetDataTest
d----- 3/4/2018 6:02 PM dir1
d----- 3/4/2018 6:02 PM dir2
-a---- 3/2/2018 3:56 PM 1024 file_1
-a---- 3/2/2018 3:56 PM 1024 file_2
Directory: D:\GetDataTest\dir1
-a---- 3/2/2018 3:56 PM 1024 file_1
-a---- 3/2/2018 3:56 PM 1024 file_2
Directory: D:\GetDataTest\dir2
-a---- 3/2/2018 3:56 PM 1024 file_1
-a---- 3/2/2018 3:56 PM 1024 file_2
我想删除所有空格以及在目录中的项目列表之前读取“Directory:..”的行。
我所关注的输出格式是
d----- 3/4/2018 6:02 PM dir1
d----- 3/4/2018 6:02 PM dir2
-a---- 3/2/2018 3:56 PM 1024 file_1
-a---- 3/2/2018 3:56 PM 1024 file_2
-a---- 3/2/2018 3:56 PM 1024 file_1
-a---- 3/2/2018 3:56 PM 1024 file_2
-a---- 3/2/2018 3:56 PM 1024 file_1
-a---- 3/2/2018 3:56 PM 1024 file_2
答案 0 :(得分:2)
根据JoesfZ's comment,您可以使用Select-Object指定属性:
Get-Childitem -R $path | Select-Object -Property Mode, LastWriteTime, Length, Name
您还可以使用Name和Expression哈希表来操作属性,如上面的链接所示 - 例如,从FullName属性中去掉“D:\ GetDataTest”:
Get-Childitem -R $path |
Select-Object -Property @{Name = "PartialPath"; Expression = {($_.FullName).Replace("D:\GetDataTest","")}}
Name
和Expression
可以进一步缩写为n
和e