在 Powershell 中修改传输速率
Modifying Transfer Rates in Powershell
当 运行 PowerShell 脚本时,有没有办法修改传输速率?
我问的原因是我必须复制超过 100 个文件,从 200 KB 到不到 1 Meg。问题是这些文件位于我们 WAN 中的另一个位置,我们的连接速度相当慢。如果我试图在工作时间复制这些文件,它会终止与中心办公室相关的连接和服务。
我查看了性能监视器,发现来自服务器的文件传输速度非常快,所以我想如果有办法限制文件复制速度,那么我也许可以在生产时间复制文件不影响网络连接。
如果您想在使用 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
希望对您有所帮助。
powershell 具有 start-sleep cmdlet 以在操作之间引入延迟。
如果您 运行 您的文件复制例程处于文件列表(可能来自目录列表结果)的循环中,您可以在每个文件副本之间放置一个 start-sleep 以释放用于其他操作的网络。
就在实际文件复制例程中执行相同操作而言,您必须使用 .NET 对象编写自己的文件复制脚本。例如,您可以针对源文件打开一个 FileStream 对象,然后将 4k 数据拉入缓冲区,然后休眠,然后重复。提取完所有数据后,可以将其保存到新文件中。
当 运行 PowerShell 脚本时,有没有办法修改传输速率?
我问的原因是我必须复制超过 100 个文件,从 200 KB 到不到 1 Meg。问题是这些文件位于我们 WAN 中的另一个位置,我们的连接速度相当慢。如果我试图在工作时间复制这些文件,它会终止与中心办公室相关的连接和服务。
我查看了性能监视器,发现来自服务器的文件传输速度非常快,所以我想如果有办法限制文件复制速度,那么我也许可以在生产时间复制文件不影响网络连接。
如果您想在使用 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
希望对您有所帮助。
powershell 具有 start-sleep cmdlet 以在操作之间引入延迟。
如果您 运行 您的文件复制例程处于文件列表(可能来自目录列表结果)的循环中,您可以在每个文件副本之间放置一个 start-sleep 以释放用于其他操作的网络。
就在实际文件复制例程中执行相同操作而言,您必须使用 .NET 对象编写自己的文件复制脚本。例如,您可以针对源文件打开一个 FileStream 对象,然后将 4k 数据拉入缓冲区,然后休眠,然后重复。提取完所有数据后,可以将其保存到新文件中。