修改Powershell中的传输速率

时间:2017-01-20 17:15:31

标签: powershell networking copy robocopy

运行PowerShell脚本时有没有办法修改传输速率?

我问的原因是我必须复制超过一百个文件,范围从200 KB到略低于梅格。问题是这些文件位于我们WAN内的另一个位置,而且我们的连接速度很慢。如果我在工作时间尝试复制这些文件,它会终止与中心局死亡相关的连接和服务。

我查看了性能监视器,看到文件从服务器传输的速度非常高,所以我想如果有办法限制文件复制速度,那么我可以在生产时间内复制文件而不影响网络连接。

2 个答案:

答案 0 :(得分:0)

如果要在使用robocopy复制文件时限制带宽使用,可以使用以下语法:

使用 / IPG 复制目录以限制带宽使用。一般的拇指规则是使用 / IPG:750 ,它将大致使用 1Mbps

Robocopy /ipg:750 /z /r:3 /w:3 /tee /LOG+:c:\robolog.txt \\server01\share \\server02\share

有关此背景的更多详细信息Robocopy Usage Details

希望它有所帮助。

答案 1 :(得分:0)

powershell具有start-sleep cmdlet,用于在操作之间引入延迟。

如果从文件列表(可能来自列出结果的目录)循环运行文件复制例程,则可以在每个文件副本之间放置一个启动睡眠以释放网络以执行其他操作。

就实际文件复制例程中的相同操作而言,您必须使用.NET对象编写自己的文件复制脚本。例如,您可以针对源文件打开FileStream对象,然后将4k数据拉入缓冲区,然后休眠并重复。当您提取所有数据时,可以将其保存到新文件中。