Ada*_*dam 14 powershell xcopy copy-item
从批处理文件切换到PowerShell脚本的原因是为了改进进程的错误检查.用于复制的cmdlet在这方面有优势吗?
如果已经存在使用xcopy按文件名单独复制文件的批处理文件,那么将语法转换为copy-item有什么好处?
使用robocopy,xcopy和copy-item有什么好处(相互比较)?例如,当在可靠的网络上处理大量小文件时,robocopy具有优势.如果要在数百台计算机上同时运行此脚本,将数百个文件复制到每个计算机上会影响决策吗?该决定是否应主要关注文件的权限?
主要优点是您可以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\'
Run Code Online (Sandbox Code Playgroud)
这是一个很糟糕的例子(你可以做到这一点Copy-Item -Filter),但它很容易在飞行中提出.在处理文件以结束管道时Get-ChildItem,这是非常常见的,而且我个人倾向于仅仅因为有-Recurse -Includebug而做了很多Remove-Item.
您还可以得到PowerShell的错误捕获,特殊的参数,如-Passthru,-WhatIf,-UseTransaction,和所有的常用参数,以及. Copy-Item -Recurse可以复制一些xcopy的树复制功能,但它非常简单.
现在,如果您需要维护ACL,所有权,审计等,那么xcopy或者robocopy可能会更容易,因为内置了该功能.我不知道如何Copy-Item处理将加密文件复制到非加密位置(xcopy有能力做到这一点),我不相信Copy-Item支持直接管理存档属性.
如果你正在寻找它的速度,那么我怀疑xcopy和robocopy会胜出.托管代码通常具有更高的开销.Xcopy和robocopy还可以更好地控制它们与网络的协作效果.
| 归档时间: |
|
| 查看次数: |
19745 次 |
| 最近记录: |