主要優點是您可以通過管道而不是字符串或文件規格將對象發送到Copy-Item
。所以,你可以這樣做:
Get-ChildItem '\\fileserver\photos\*.jpeg' -File | `
Where-Object { ($_.LastAccessTime -ge (Get-Date).AddDays(-1)) -and ($_.Length -le 500000) } | `
Copy-Item -Destination '\\webserver\photos\'
這是怎樣的一個壞榜樣的(你可以做到這一點與Copy-Item -Filter
),但它是一個容易拿出上的動態。在處理文件時最常見的是Get-ChildItem
,而我個人傾向於這麼做的原因很多,僅僅是因爲Remove-Item
的-Recurse -Include
錯誤。
您還可以獲得PowerShell的錯誤捕獲,特殊參數如-Passthru
,-WhatIf
,-UseTransaction
以及所有常見參數。 Copy-Item -Recurse
可以複製一些xcopy的樹的複製能力,但它是相當簡單的。現在
,如果你需要維護的ACL,所有權,審覈,等等,然後xcopy
或robocopy
可能會因爲該功能內置於容易得多。我不知道Copy-Item
手柄如何複製加密的文件到非加密位置(xcopy有一些這樣做的能力),我不相信Copy-Item
支持直接管理存檔屬性。
如果你正在尋找速度,那麼我會懷疑xcopy和robocopy會勝出。託管代碼的總體開銷較高。 Xcopy和robocopy還可以更好地控制他們在網絡中的工作情況。
完全取決於你想做什麼。您錯過了列表中的Robocopy。 – 2014-12-05 21:26:28
這個過於寬泛。我們不知道你在移動什麼,多少。有很多不同之處,你幾乎總是希望在批處理作業的基本副本項目上使用xcopy/robocopy。 – Matt 2014-12-05 21:31:54
儘管標題不明確,但帖子相當明顯地詢問他是否應將其現有批處理文件中的'xcopy