首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PowerShell使用xcopy、robocopy或copy-item

PowerShell使用xcopy、robocopy或copy-item
EN

Stack Overflow用户
提问于 2014-12-06 05:10:04
回答 1查看 26.1K关注 0票数 15

从批处理文件切换到powershell脚本的原因是为了改进进程的错误检查。用于复制的cmdlet在这方面有优势吗?

如果已经存在使用xcopy逐个按文件名复制文件的批处理文件,那么将语法转换为copy-item有什么好处吗?

使用robocopy、xcopy和copy-item (相互比较)的优点是什么?例如,当通过可靠的网络处理大量小文件时,robocopy是否具有优势。如果要在数百台计算机上同时运行此脚本以将数百个文件复制到每台计算机上,是否会影响决策?是否应该主要关注文件的权限?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-06 05:54:43

它的主要优点是,您可以通过管道而不是字符串或文件将对象发送到Copy-Item。所以你可以这样做:

代码语言:javascript
复制
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、所有权、审计等,那么xcopyrobocopy可能会更容易,因为这些功能都是内置的。我不确定Copy-Item如何处理将加密文件复制到非加密位置(xcopy可以做到这一点),而且我不相信Copy-Item支持直接管理存档属性。

如果这是你想要的速度,那么我怀疑xcopy和robocopy会胜出。托管代码通常具有较高的开销。Xcopy和robocopy还可以更好地控制它们与网络的配合程度。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27324725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档