如何在目录中列出和打印文件?

时间:2015-01-04 17:08:25

标签: powershell

我试过这个,但它没有打印任何东西:

Dir -Recurse "C:\temp" | Select Fullname

看起来这个命令只选择文件名。我想在控制台中看到它们。

4 个答案:

答案 0 :(得分:3)

查看Get-Childitem

Dir -Recurse c:\path\ | Get-Childitem

答案 1 :(得分:2)

关于问题中的代码。

您的命令应该按原样运行。事实上,你已经在呼叫Get-ChildItem。如果你检查Get-Alias,你会看到我想告诉你的。

PS C:\users\Cameron\Downloads> Get-Alias dir

CommandType     Name                                               ModuleName                                                                                               
-----------     ----                                               ----------                                                                                               
Alias           dir -> Get-ChildItem  

您的代码转换为

Get-ChildItem -Recurse "C:\temp" | Select Fullname

同样,我不确定为什么你的代码不会生成输出,因为在包含文件或目录的文件夹上完全没问题。可能是位置参数的问题?什么是PowerShell版本? (使用Get-Host)。

您拥有的代码会将所有文件路径发送到控制台。你想在其他地方输出那个输出吗?

关于接受的答案

如果路径中有文件夹,则此代码会将输出加倍,因为目录将输出到第二个Get-ChildItem

Dir -Recurse c:\path\ | Get-Childitem

考虑以下文件夹树

C:\TEMP\TEST
│   File1.txt
│   File2.txt
│
└───Folder1
        File3.txt

考虑针对该文件夹树运行的两个命令。

PS C:\users\Cameron\Downloads> Dir -Recurse c:\temp\test | Select Fullname

FullName                                                                                                                                                                    
--------                                                                                                                                                                    
C:\temp\test\Folder1                                                                                                                                                        
C:\temp\test\File1.txt                                                                                                                                                      
C:\temp\test\File2.txt                                                                                                                                                      
C:\temp\test\Folder1\File3.txt                                                                                                                                              



PS C:\users\Cameron\Downloads> Dir -Recurse c:\temp\test | Get-Childitem | Select Fullname

FullName                                                                                                                                                                    
--------                                                                                                                                                                    
C:\temp\test\Folder1\File3.txt                                                                                                                                              
C:\temp\test\File1.txt                                                                                                                                                      
C:\temp\test\File2.txt                                                                                                                                                      
C:\temp\test\Folder1\File3.txt   

第二个命令显示两个名为File3.txt的文件,而实际上只有一个文件。

答案 2 :(得分:0)

也许值得一提的是看到隐藏项目所需的-force开关。

答案 3 :(得分:0)

get-childitem | format-list > filename.txt 

这将为您提供一个文本文件,其中包含名称,大小,最后修改时间等。

如果要从项目中获取特定参数...(例如文件名,则仅命令是

get-childitem | format-list name > filename.txt

这将为您提供相同的文本文件,但仅列出文件的名称。