当此文件夹可以嵌套在我的用户主文件夹中的任何位置时,如何找到名为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" {
}
}
答案 0 :(得分:4)
您可以使用-recurse
递归查找路径中的最后一件事。所以这个:
Get-ChildItem \\server\Users\BlueMountain -recurse
将查看&#34; \ server \ Users&#34;的所有子文件夹任何名为&#34; BlueMountain&#34;。然后你只需要确保它有一个你的文件夹。
$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
。
答案 1 :(得分:1)
试试这个:
$SubFolders = 'Certs','Config','Macros','Scripts','Spool','Traces','Transfer'
$wordtosearch="BlueMountain"
$SearchPattern= ($SubFolders | %{ "$wordtosearch\\$_" }) -join "|"
get-childitem "\\Server\Users" -directory -Recurse |
where FullName -match $SearchPattern |
Split-Path -path {$_.FullName} -Parent |
remove-item -Recurse -ErrorAction SilentlyContinue