小编Ben*_*Ben的帖子

Invoke-Command比命令本身更快?

我试图测量一些在PowerShell中写入文件的方法.毫无疑问,但我不明白为什么Measure-Command下面的第一个声明要比第二个声明执行更长的时间.

它们是相同的,但在第二个中我写了一个脚本块发送到Invoke-Command第一个脚本块,我只运行命令.

关于Invoke-Command速度的所有信息我都能找到关于远程处理的信息.

此块大约需要4秒钟:

Measure-Command {
    $stream = [System.IO.StreamWriter] "$PSScriptRoot\t.txt"
    $i = 0
    while ($i -le 1000000) {
        $stream.WriteLine("This is the line number: $i")
        $i++
    }
    $stream.Close() 
} # takes 4 sec
Run Code Online (Sandbox Code Playgroud)

并且下面的代码完全相同,但是在传递给的脚本块中写入Invoke-Command大约需要1秒钟:

Measure-Command {
    $cmdtest = {
        $stream = [System.IO.StreamWriter] "$PSScriptRoot\t2.txt"
        $i = 0
        while ($i -le 1000000) {
            $stream.WriteLine("This is the line number: $i")
            $i++
        }
        $stream.Close()
     }
     Invoke-Command -ScriptBlock $cmdtest
} # Takes 1 second
Run Code Online (Sandbox Code Playgroud)

怎么可能?

invoke-command powershell-4.0

6
推荐指数
1
解决办法
426
查看次数

标签 统计

invoke-command ×1

powershell-4.0 ×1