当名为 BlueMountain 的文件夹可以嵌套在我的用户主文件夹中的任何位置时,如何找到该文件夹
\\Server\Users\<personsname>\
最终我想删除该文件夹,但只是为了安全起见。 BlueMountain 文件夹必须具有以下子文件夹之一
Certs
Config
Macros
Scripts
Spool
Traces
Transfer
这就是我目前所拥有的
Get-ChildItem -Path \\Server\Users -Recurse -Directory -Filter $_.FOLDERNAME | ForEach-Object {
If $_.FullName --eq "BlueMountain" {
}
}
最佳答案
您可以使用-recurse
递归地查找路径中的最后一个内容。所以这个:
Get-ChildItem \\server\Users\BlueMountain -recurse
将在“\server\Users”的所有子文件夹中查找名为“BlueMountain”的任何内容。然后您只需确保它包含您的文件夹之一。
$SubFolders = 'Certs','Config','Macros','Scripts','Spool','Traces','Transfer'
Get-ChildItem \\server\Users\BlueMountain -recurse | Where{Get-ChildItem "$($_.FullName)\*" -Include $SubFolders}
这应该仅列出在\server\Users 中递归找到的包含指定子文件夹之一的 BlueMountain 文件夹。然后您可以将其通过管道传输到 Remove-Item -force
并收工。或者,如果您想跟踪事物,请将其传送到 tee-object
,然后传送到 remove-item
。
关于powershell - 我需要在网络共享上找到一个文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44660759/