2016-03-29 14 views
0

私の上司は、「着信」と「発信」という名前のフォルダを除いて、ディレクトリ内のすべてを削除するスクリプトを作成する必要があります。それらのフォルダ内のディレクトリ。これら2つのフォルダはランダムな会社名フォルダにも格納されているので、リストが増え続けるにつれてそれぞれを指定することはできません。名前が変更されたフォルダ内の特定のフォルダを削除する

これらのフォルダが保存されているフォルダを削除せずに、受信フォルダと送信フォルダのすべてのコンテンツを削除するにはどうすればよいですか?ここで

は、私が持っているコードは、これまでのところです:

Get-ChildItem -Path ("C:\Users\testuser\Desktop\Test") -Exclude "Incoming","Outgoing" | foreach ($_) { 
    "CLEANING :" + $_.FullName 
    Remove-Item $_.FullName -Force -Recurse 
    "CLEANED... :" + $_.FullName 
} 

は、これは正しいアプローチですか?余分なオプションを追加するためにこのコマンドに追加すべきスイッチや何かがありますか?このスクリプトは、セットアップするWindowsタスクを介して毎日実行されます。たぶん、削除スクリプトの深さを指定する方法はありますか?

+0

ヒント: 'Remove-Item'で' -WhatIf'パラメータを使用してください。実際に何も削除せずに削除されるものが表示されます。 – vonPryz

答えて

0

うまくいけば、これが必要なのです。これは、 "受信"と "送信"フォルダの下にあるファイルとフォルダを削除する必要があります。

$folders = Get-ChildItem -Path "C:\Users\mkrouse\Desktop\Test" -Recurse -Directory | Where-Object {($_.basename -contains "Incoming") -or ($_.BaseName -contains "Outgoing")} 
foreach($folder in $folders){ 
    $items = Get-ChildItem -Path $folder.FullName -Recurse 
    foreach($file in $items) { 
     Remove-Item -Path $file.FullName -Recurse -Force -WhatIf 
    } 
} 
+1

これは受信フォルダと送信フォルダを含む会社フォルダを削除しませんか? – Dpw808

+0

ちょうどそれをテストし、私が思ったように、それはまた、受信フォルダと送信フォルダと一緒に会社のフォルダを削除します。パスのテスト/会社フォルダにある会社フォルダと、出入国する企業フォルダは、テスト/会社フォルダ/発信、テスト/会社フォルダ/受信です。会社のフォルダは、受信フォルダと送信フォルダに沿ってそのまま維持する必要があります。削除する必要があるのは、受信フォルダと送信フォルダの内容だけです。 – Dpw808

+0

@ Dpw808更新されたコードで運が悪いですか? – krousemw

関連する問題