2012-02-09 38 views
1

我想一定年齡從一個位置移動文件夾/文件到另一個在PowerShell中使用的Robocopy移動文件夾

的的Robocopy部分適用於自己的,但腳本作爲一個整體犯規

這裏是我有

foreach ($i in Get-Item C:\ -Recurse) 
{ 
    if ($i.CreationTime -lt ($(Get-Date).AddMonths(-6))) 
    { 
     robocopy "C:\" "C:\Old Files" /Z /S /MOVE 
    } 
} 

,這並不做任何事情,在PowerShell中提前

感謝

+0

這是令人困惑的。你是否試圖在C:\中獲取頂級文件夾,這些文件夾比特定日期早,如果這樣移動它們? – 2012-02-10 00:30:48

+0

您好傑弗瑞,基本上我有一個映射的驅動器,有很多不同年齡的文件夾和文件。我試圖將它們移動到一個單獨的文件夾中,以便通過它們並刪除我不需要的文件 – user1130264 2012-02-10 08:12:54

回答

0

我認爲這是你想要做的。您需要開始思考PowerShell模式。這是一條oneline命令。

PS C:> dir | {$ .PSIscontainer -AND($ .Creationtime -lt(Get-Date).AddMOnths(-6))} | foreach {} {robocopy $ _。fullname c:\ oldfiles/Z/S/Move }

雖然您也可以使用Move-Item cmdlet。

+0

上面的腳本給出錯誤,將進一步研究它,看看我能否解決這個問題 – user1130264 2012-02-10 08:54:38

+0

我修改了上面的腳本但得到一個錯誤 - Get-ChildItem -Recurse c:\ test |其中($ .Creationtime -lt(Get-Date).AddMonths(-6))| ForEach-Object {robocopy「c:\ test」「c:\ old」/ Z/S}「$ .creationtime不是可識別的cmdlet」 – user1130264 2012-02-10 10:03:55

+0

$ _引用管道中的當前對象:Get-ChildItem -Recurse c :\ test |其中{$ _。Creationtime -lt(Get-Date).AddMonths(-6)} | ForEach-Object {robocopy「c:\ test」「c:\ old」/ Z/S} – plodoc 2012-06-26 17:22:19

相關問題