2017-06-20 178 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 
相關問題