powershell - 我可以包含根文件夹以编程方式获取子项输出吗?

标签 powershell

如果我运行这个简单的命令:

gci e:\mytree -r | select fullname

它给出了这个输出:
E:\mytree\folder1                                                                                                                                                                      
E:\mytree\folder2                                                                                                                                                                      
E:\mytree\folder3                                                                                                                                                                      
E:\mytree\file1.txt                                                                                                                                                                    
E:\mytree\file12.txt                                                                                                                                                                   
E:\mytree\folder1\folder.with.dots                                                                                                                                                     
E:\mytree\folder1\folder.with.dots\file inside folder with dots.txt                                                                                                                    
E:\mytree\folder3\file4.doc     

有什么方法可以将根文件夹包含在输出中,以便我可以拥有
E:\mytree
E:\mytree\folder1                                                                                                                                                                      
E:\mytree\folder2                                                                                                                                                                      
E:\mytree\folder3                                                                                                                                                                      
E:\mytree\file1.txt                                                                                                                                                                    
E:\mytree\file12.txt                                                                                                                                                                   
E:\mytree\folder1\folder.with.dots                                                                                                                                                     
E:\mytree\folder1\folder.with.dots\file inside folder with dots.txt                                                                                                                    
E:\mytree\folder3\file4.doc    

最佳答案

get-childitem $root -recurse | foreach-object -begin { $arr = @((get-item $root).fullname) } -process { $arr+= $_.fullname } -end { $arr }

使用 foreach-object cmdlet 的 begin 开关,我们在处理来自 get-childitem 的对象之前做了一些工作:我们创建一个数组并将根的文件路径放在那里。

然后对于管道中的每个对象,我们将其文件路径附加到数组中。

最后,我们将数组输出到管道。

关于powershell - 我可以包含根文件夹以编程方式获取子项输出吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5742816/

相关文章:

regex - PowerShell 从字符串中解析名称和版本

powershell - 在 PowerShell 作业中使用本地函数

powershell - Import-PfxCertificate 未将证书保存在指定的系统存储位置

azure - 实现重试逻辑后显示角色分配已存在错误

function - 支持词法范围 ScriptBlock 参数(例如Where-Object)

powershell - TeamCity - 用 powershell 迭代 vcs 根

powershell - 无法识别获取包裹

powershell - Invoke-WebRequest,带参数的 POST

powershell - 导出为 CSV 设置小数点分隔符

用于测试命令是否存在的 PowerShell 习语?