通过powershell复制数据时精确的时间测量

问题描述 投票:0回答:1

您好,我一直在尝试找到一种方法来帮助我估计将数据库从一个位置移动到另一个位置需要多长时间。到目前为止,我的在线研究已经帮助我解决了一些问题,但我似乎陷入了困境,因为我使用似乎正确的命令来查看需要计数的所有文件,但它返回到 5TB 数据库,因为它只需要 22 毫秒,所以要么我有一个更快的网络和我什至知道的服务器,要么我搞砸了一些我看不到的方式。

$item = get-childitem 'D:\SQL01' -Recurse
$d = "E:\SQL01"
$results = @()

$results = Foreach ($i in $item) {
Measure-Command -Expression {
Copy-Item -literalpath $i $d
    }
}

($results | Measure-Object -Property TotalSeconds -Sum).Sum


$results -f "c"

读完这篇文章似乎很好,它甚至返回了时间总和,但不可能是准确的。如果有人看到我做错了什么或者您认为我可以尝试不同的方法,请发表评论。

performance powershell time
1个回答
1
投票

这是

Write-Progress
的实际示例:

# Get all directories on D:\SQL01 recursively
$directories = Get-ChildItem 'D:\SQL01' -Directory -Recurse
# Set a destination folder
$destination = 'E:\SQL01'
$dirCount = $directories.count
$i = 0

foreach ($directory in $directories) {
    $progress = @{
        Activity        = 'Copying - {0}' -f $directory.FullName
        Status          = "Folder $i of $dirCount"
        PercentComplete = $i++ / $dirCount * 100
    }
    Write-Progress @progress
    Copy-Item -Path $directory -Destination $destination -Recurse
}
© www.soinside.com 2019 - 2024. All rights reserved.