2017-06-20 119 views
2

我如何才能找到文件夹名为蓝山时,在此文件夹可以随时随地在我的用户的个人文件夹可以嵌套我需要找到一个文件夹上的网络共享

\\Server\Users\<personsname>\ 

最后,我要删除的文件夹,但刚需在安全的一面。在蓝山的文件夹必须具有以下子文件夹

Certs 
Config 
Macros 
Scripts 
Spool 
Traces 
Transfer 

之一这是我迄今为止

Get-ChildItem -Path \\Server\Users -Recurse -Directory -Filter $_.FOLDERNAME | ForEach-Object { 
     If $_.FullName --eq "BlueMountain" { 

     } 

    } 
+1

通过返回的文件对象的'fullname'属性'GET-ChildItem'将包含文件的完整路径。您的比较将始终返回'$ false'。此外,比较运算符是“-eq”,而不是“--eq”。请在寻求帮助之前做更多的研究和测试。 –

回答

4

您可以使用-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

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 
相关问题