システムwiki

名前付きフォルダのみから再帰的にファイルの種類を削除します

Pmc181 受付中 最終更新日:2021-05-06 22:44

毎週のクリーンアップルーチンを持っていますユーザーフォルダのディレクトリ全体をScanし、ファイルタイプ* .psrと* .zipを削除しますが、特定のフォルダでのみ削除します.すべてのサブフォルダではありません.

このディレクトリ内の各ユーザーのフォルダには、すべてのユーザーのまったく同じ名前という名前のサブフォルダがあります.これらのファイルを各ユーザーの名前付きサブフォルダに削除したいだけです.下のスクリーンショット例では、ターゲットフォルダになります.ターゲットフォルダ名
すべてのユーザーに存在します.

このDELステートメントを実行していました.これは機能しますが、各ユーザーのターゲットフォルダだけではなく、すべてのサブフォルダからそれらのファイルタイプを削除します.

DEL/S/Q* .PSR* .ZIP>削除済み-SR-ZIP.TXT 2>&1

PMC181

返信リスト(回答:7)

7 #
KeithA.

PowerShell:

$ Exts=@( '*.psr'、 '*.zip')

Get-ChildItem '*\Target-Name'-Directory-Recurese|ForeEach {

$ Folder=$ _.FullName

$ Path=$ Exts|ForEach {Join-Path $ Folder $ _}

Get-ChildItem $ Path-File-Recurse |アイテムの削除

}

キース

応答7# ->にスキップ
6 #
Pmc181

うわー!クイック返信キースをありがとう.私はこれを試してみます.私がそれをバッチファイルに入れるならば、それはそのうちに仕事をしますので、毎週実行するようにスケジュールすることができますか?

Paul

応答6# ->にスキップ
4 #
KeithA.

バッチラッパーは不要です..ps1ファイルとして保存し、PowerShellタスクをスケジュールします.

キース

応答4# ->にスキップ
3 #
Pmc181

大丈夫ありがとう.最後に一つだけ.この場所は\\ネットワークパスで、PUSHDとPOPDを使用してDELステートメントの前後にドライバ文字を一時的に割り当てて実行されます.それはあなたのコードの前後にそれを置くために働くでしょうか?

Paul

応答3# ->にスキップ
2 #
KeithA.

サーバーを持っていないので、PowerShellでのUNCパスの操作に慣れていません.その面で調査を行う必要があります.

更新:最初の検索では、最初のGet-ChildItemステートメントでUNCパスを指定できる必要があることが示されています.

Get-ChildItem "\\ServerName\ShareNam\*\TargetName"

応答2# ->にスキップ
1 #
Pmc181

キースに感謝します.

ポール

応答6# ->にスキップ
5 #
KeithA.

上記へのクイック編集...しばらくお待ちください...

完了!スペルミスのある「Recurse」がありました!