2013-11-26 61 views
3

我有一個網絡共享文件夾 - 稱之爲\ Server \ Backup \ November.25.2013.backup。 此文件夾包含子文件夾\ test1,\ test2,\ test3。PowerShell複製文件夾從日期到目標文件夾的備份文件夾

例子:

\\Server\Backup\November.25.2013.backup\ 
             .\Test1 
             .\Test2 
             .\Test3 

我需要November.25.2013.backup的子文件夾複製到C:\測試。 此功能僅用於複製指定日期(本例中爲昨天的備份)的備份文件夾內容。我正在使用此腳本來恢復最後一天的備份減去名稱(November.25.2013.backup)。這是我一直在試圖利用:

Get-ChildItem -Path \\Server\Backup -r | Where-Object {$_.LastWriteTime -gt (Get-Date).Date} 
% { Copy-Item -Path $_.FullName -Destination C:\Test -WhatIf } 

但是我得到的錯誤

Copy-Item : Cannot bind argument to parameter 'Path' because it is null. 
At line:3 char:20 
+ % { Copy-Item -Path <<<< $_.fullname -destination C:\Test -whatif } 
    + CategoryInfo   : InvalidData: (:) [Copy-Item], ParameterBindingValidationException 
    + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.CopyItemCommand 

請理解,我仍然使用PowerShell腳本是新手,我不知道如何解決這個。我很欣賞任何建議。

我的目標是從備份文件夾恢復文件夾。謝謝。

+0

你忘了添加一個'|兩種說法之間'(管)。 '%'(foreach)沒有輸入。 – Eris

回答

2

(添加作爲回答爲好。)

在你粘貼代碼,還有就是位置對象和%之間沒有管。

簡單的解決方案:增加一個|到第一行的末尾:

Get-ChildItem -Path \\Server\Backup -r | ? {$_.lastwritetime -gt (get-date).date} | 
% { Copy-Item -Path $_.fullname -destination C:\Test -whatif } 
3

你缺少在第一行的最後一個管道。

另外,如果你想獲得昨天的最後寫一個文件夾時,它會小於-lt當前日期

Get-ChildItem -Path \\Server\Backup -r | Where-object {$_.lastwritetime -lt (get-date).date} | 
% { Copy-Item -Path $_.fullname -destination C:\Test -whatif } 

但可能會搶佔更多的歷史比你想,如果有每天一個文件夾。如果你只是想什麼寫昨天使用:從評論

Get-ChildItem -Path \\Server\Backup -r | Where-object {($_.lastwritetime.date -eq ((get-date).adddays(-1)).date)} | 
% { Copy-Item -Path $_.fullname -destination C:\Test -whatif } 

例子:

Get-ChildItem -Path c:\test -r | Where-object {$_.PSIscontainer -and (($_.lastwritetime.date -eq ((get-date).adddays(-1)).date))} | 
% { Copy-Item $_.fullName -destination C:\Testoutput\ -recurse} 
+0

這工作除了現在的文件夾遇到,但沒有文件是在我需要添加這個!($ _。psiscontainer)-AND到我的腳本 – user3038013

+0

是的,這將工作,只要一定要添加 - 在最後的遞歸當前-whatif的副本項目。我可以添加它作爲一個單獨的例子。如果您覺得這是個問題,請將此問題標記爲已回答,併爲其他問題開啓新線程。 – malexander

+0

工程就像一個魅力 - 非常感謝請考慮這個問題回答 – user3038013

相關問題