如何以编程方式将根文件夹包含到get-childitem输出中?

Nic*_*ssu 5 powershell

如果我运行以下简单命令:

gci e:\mytree -r | select fullname
Run Code Online (Sandbox Code Playgroud)

它给出以下输出:

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     
Run Code Online (Sandbox Code Playgroud)

有没有办法在输出中甚至包括根文件夹,以便我可以

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    
Run Code Online (Sandbox Code Playgroud)

Joh*_*son 7

@(gi e:\mytree) + @(gci e:\mytree -r) | select fullname
Run Code Online (Sandbox Code Playgroud)

@(..) 强制每个表达式的返回值是一个数组


Dan*_*nak 5

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

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

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

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