【问题标题】:Powershell output takes longer to displayPowershell 输出需要更长的时间才能显示
【发布时间】:2016-01-18 13:27:54
【问题描述】:

在命令提示符和 powershell 中运行以下命令。

第一个在命令提示符下即时显示,而在 powershell 中需要更长的时间。它这样做的原因可能是什么?

type file

有没有办法改变或加速默认的 powershell 行为?

如果需要,我很乐意发布视频/gif。

这是一个视频,如果可以的话,我会在某个时候发布一个 gif https://vid.me/ZjfA

【问题讨论】:

    标签: powershell command-prompt


    【解决方案1】:

    type 在命令提示符下读取文本。在 PowerShell 中,它读取文本行并构造 .NET 数组,其中每行文件包含一个字符串对象。

    (Get-Content 是 slow 和 slow 和 slow 和 slow 和 slow 和 slow)。

    【讨论】:

    • 那么我该如何为type 和dir 解决这个问题呢?我认为 powershell 几乎无法使用,因为它太慢了。
    • @William 如果你真的想使用type,那么显式调用它。 Get-Content 速度较慢,因为它做得更多!在类型不会的许多情况下,它可能是有利的。 Tess 没有准确地说,但 PowerShell 中的 type 是 Get-Content 的别名,因此 似乎 是相同的命令。
    • 这些链接中提到了一些修复;您可以将参数传递给 get-content 以使其一次读取更多内容,或者如果您正在读取变量,则更改为不这样做只是流式传输输出,或者您可以使用 .Net 文件阅读器方法。如果您只是在 shell 中使用普通的 type file.txt 来查看文件中的内容 - 我不知道您能做些什么。 (但奇怪的是,这种使用会非常慢 - 文件有多大,有多慢?dir 有多慢?)。别名较慢 - 测试 Get-ChildItem 和 Get-Content 的全名。 @Matt - 哎呀,忘了那一点!
    • @Matt 那我该如何明确地称呼它呢? @@TessellatingHeckler 我不介意尝试其中的几个,但哪个可能​​是最快的?您链接到许多不同的页面。
    • @TessellatingHeckler 我不相信这是完全正确的(虽然我不能说)。我对Get-Content 命令进行了计时,它们似乎与命令提示符的速度大致相同,因此在显示时内部发生了一些事情。这很愚蠢,但几乎可以工作cmd /k "type .\Telnet2.cs" 它只是运行命令提示符命令,但它似乎并没有按原样退出。
    【解决方案2】:

    首先打开命令提示符然后运行powershell。或按 Win+r,然后键入 powershell。接下来键入运行以下内容

    powershell.exe -noexit -File "C:\Users\a\Desktop\test.ps1"
    

    test.ps1

    Remove-Item alias:ls
    Remove-Item alias:cat
    Remove-Item alias:echo
    function ls {cmd /c "dir $args"}
    function cat {cmd /c "type $args"}
    function echo {cmd /c "echo $args"}
    

    现在您的命令应该看起来更快了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-11
      • 2015-12-28
      相关资源
      最近更新 更多