Powershell显示特定文件夹名称的递归内容

时间:2014-03-27 07:15:39

标签: powershell

我正在尝试编写一个PowerShell脚本,该脚本将搜索网络共享中名为“abc”的所有文件夹。这个文件夹的多个实例位于此共享中,在不同的DIR中都名为“abc”

我想列出所述目录中名为“abc”的每个文件夹的文件和文件夹内容。到目前为止,我已经让PowerShell列出了网络驱动器中名为“abc”的所有文件夹实例,但之后我被困住了。

我可以将其传输到另一个命令,然后搜索并列出每个文件夹内容吗?

1 个答案:

答案 0 :(得分:1)

您可以尝试类似htis的内容

Get-ChildItem -Filter "abc" -Recurse -Path "\\myserver\share" | #Find abc
Where-Object { $_.PSIsContainer } | #Get only abc-folders
Get-ChildItem -Recurse | #Search through each abc-folder
Where-Object { !$_.PSIsContainer } #Get only files

如果在服务器上本地运行脚本或使用psremoting(例如使用Invoke-Command),性能会更好。问题是,在从第一个Get-ChildItem行的搜索结果中删除文件之前,它会递归搜索所有文件和文件夹。

如果你有PS 3.0或PS 4.0,你也可以使用:

Get-ChildItem -Filter "abc" -Recurse -Path "\\myserver\share" -Directory | #Find abc-folders
Get-ChildItem -Recurse -File #Get files inside those folders