2012-02-15 73 views
0

刪除文件夾捎帶到這個問題,PowerShell script to delete files from list and output list of deleted file,我試圖完成類似的東西。我有一個與我們的網絡文件服務器上的某些文件夾的名稱相匹配的用戶名列表。並非列表中的所有用戶名都將創建主文件夾,有些可能根本就不存在。PowerShell腳本從列表

我的僞代碼看起來是這樣的:

  • 裝入用戶列表
  • 對於每個用戶的檢查,看他們是否有一個目錄或不
  • 如果他們有一個目錄,強行和遞歸刪除

下面是一些代碼,我一直在努力失敗:

$Termed_Users = "C:\Data\Termed_Users.csv" 
$Home_Folders = "X:" 

$UserList = Import-Csv $Termed_Users 

$UserList | ForEach-Object {  
    $ID = $_.ID 
    $User_Home = $Home_Folders + "\" + $_.ID } 

If (Test-Path $User_Home) { Remove-Item -Recurse -Force $User_Home } 
+0

那麼,什麼是不工作? – JNK 2012-02-15 21:54:31

+0

它不會引發任何錯誤,並且不會刪除文件夾。我不確定。 – John 2012-02-15 21:55:12

回答

3

的問題是在你的ForEach-Object管。

你不斷嘗試任何刪除之前重新分配$User_Home變量,並通過整個列表循環。將您刪除成腳本塊:

$UserList | ForEach-Object {  
    $ID = $_.ID 
    $User_Home = $Home_Folders + "\" + $_.ID 
    Remove-Item -recurse -force $User_Home -erroraction silentlycontinue } 

我也去掉了測試,因爲它並不重要 - 你會嘗試刪除所有這些,忽略錯誤。

+0

+1爲30秒:) – 2012-02-15 21:59:44

+0

這既是看中和新穎打我。我只是測試它,它工作得很好!非常感謝你的幫助。 – John 2012-02-15 22:02:13

+0

@約翰 - 你堅持下去,你會學到很多花哨的PowerShell的技巧。樂於幫助! – JNK 2012-02-16 01:13:55