我正在尝试编写一个PowerShell脚本,该脚本将搜索网络共享中名为“abc”的所有文件夹。这个文件夹的多个实例位于此共享中,在不同的DIR中都名为“abc”
我想列出所述目录中名为“abc”的每个文件夹的文件和文件夹内容。到目前为止,我已经让PowerShell列出了网络驱动器中名为“abc”的所有文件夹实例,但之后我被困住了。
我可以将其传输到另一个命令,然后搜索并列出每个文件夹内容吗?
答案 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