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

How can I list and print files in a directory?

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

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

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

看看Get-Childitem

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

关于问题中的代码。

您的命令应该按原样运行。事实上,您已经在呼叫 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 的文件,而实际上只有一个。

可能还值得一提的是 -force 开关,它是查看隐藏项目所必需的。

get-childitem | format-list > filename.txt 

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

如果您想要项目的特定参数...例如文件名,仅命令是

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

这是给你的同一个文本文件,但只列出了文件的名称。