web-dev-qa-db-ja.com

サブフォルダーを含むファイルとフォルダーをある場所からx日より古い場所に移動するPowerShellスクリプト

PowerShellスクリプトを開発しましたが、まったく問題なく動作しています。唯一の課題は、サブフォルダー内のファイルが宛先に移動されないことです。

get-childitem -Path "\\servername\location" |
    where-object {$_.LastWriteTime -lt (get-date).AddDays(-31)} |
    move-item -destination "C:\Dumps"

スクリプトをさらにカスタマイズすることはできません。

15
user1926332

-RecurseコマンドでGet-ChildItemオプションを使用して、サブフォルダー内のファイルにアクセスし、コレクションをMove-Itemにパイプすることでそれぞれを個別に移動します

Get-ChildItem -Path "C:\Test" -Recurse |
  Where-Object {$_.LastWriteTime -lt (Get-date).AddDays(-31)} |
  Move-Item -destination "C:\Dumps"

スクリーンショットは次のとおりです。

screenshot

12

PowerShellでrobocopyを再発明しようとして時間を無駄にしないでください。

robocopy \\servername\location C:\Dumps /e /mov /minage:31
16
Ansgar Wiechers

上記の簡略化
robocopy A:\ B:\ /MIR /minage:31
A:\はソースB:\はデスティネーションです

7
Stephen Tunney

すべてのデータを1つのドライブから別のドライブに移動するために、1つのライナーが必要でした。これは私にとって完璧に機能しました:

Get-ChildItem "E:"-再帰| Move-Item -Destination "G:"

0
Vinny