powershell - 比powershell.exe更好的PowerShell主机?

标签 powershell

我一直在尝试从我最喜欢的4NT切换到PowerShell。在过去的20年中,我错过了4NT所添加的许多优点(我是4DOS的老用户)。

例如,在4NT中,如果您键入几个字母然后按上/下键,则历史记录列表将按您键入的内容进行过滤。向上/向下翻页会弹出所有匹配项,您可以在它们之间进行游标。全部在控制台窗口空间中,没有GUI。我很想节省时间。 powershell.exe中缺少许多其他类似的东西。

powershell.exe是否有其他替代品,这些替代品也许具有真正利用控制台环境的功能?我意识到有很多基于GUI的工具将PowerShell嵌入到 Pane 中,但是我对cmd.exe/4nt.exe替换仍然很感兴趣,而该替换仍可作为100%控制台应用程序使用(也许有一个选项对话框或任何)。

最佳答案

约书亚已经提到F7。您还可以在Powershell.exe中执行部分历史记录匹配,方法是键入一些命令并按F8键-重复按F8键以循环进行匹配(请参见about_history)。行编辑功能还比人们通常所了解的要多。这些内容记录在about_line_editing帮助主题中。尽管如此,在PowerShell控制台主机中进行行编辑仍需要进行一些操作。 FWIW我知道的所有其他主机都是基于GUI的。

顺便说一句,我曾经是4NT用户(以及Korn Shell用户)。即使4NT中缺少一些便利设施,我仍认为PowerShell是功能更强大的Shell,并且作为开发人员,所有“语言”位都非常容易适应和使用。我从未真正喜欢过Korn shell的if / ficase / esac语句-只是以错误的方式擦了我的审美意识。 :-)另外,在PowerShell中,您可以根据自己的历史记录做一些很酷的事情,例如:

# Search history using regex
PS> get-history -count 999 | select-string '\b(fl|ft)\b'

# Look at your shell usage pattern by hour of day - Name column is hour of day
PS> ghy | group {$_.StartExecutionTime.Hour}

Count Name       Group
----- ----       -----
   30 21         {$allargs, echoargs -arg $allArgs, echoargs $a
    2 22         {ghy | group {$_.StartExecutionTime.Hour}, ls}

# Look at commands in terms of execution time (sorted descending)
PS> ghy | Select CommandLine,Id,`
      @{n='ExecutionTime';e={$_.EndExecutionTime - $_.StartExecutionTime}} | 
      Sort ExecutionTime -Desc 

CommandLine                                        Id ExecutionTime
-----------                                        -- -------------
ls C:\Windows\System32 ...                         94 00:00:06.0233445
ls C:\Windows\System32\...                         93 00:00:01.1360650
gps | fl                                           89 00:00:00.5780330
dir                                                80 00:00:00.0950054
ls                                                 83 00:00:00.0870050
ghy | Select CommandLin...                         92 00:00:00.0810046
dir                                                67 00:00:00.0750042
ghy | Select CommandLin...                         95 00:00:00.0580034
ghy | Select CommandLin...                         96 00:00:00.0570032
ghy | Select CommandLin...                         97 00:00:00.0540031
dir                                                76 00:00:00.0500029
get-history -count 999 ...                         88 00:00:00.0420024

关于powershell - 比powershell.exe更好的PowerShell主机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2130189/

相关文章:

powershell - PShell 脚本可在 ISE 中运行,但在运行 .ps1 时

parsing - Powershell中的动态字符串解析

powershell - 将凭据管道传输到 Invoke-WebRequest

Powershell ZIP CopyHere 抵消异步行为

powershell - TFS - 获取变更集范围

powershell - 无法使用powershell连接到远程电脑

powershell - Gradle -v 命令指向旧版本

windows - Powershell存在本地用户ADSI

powershell - 为 powershell 进程提供名称

azure - 通过 powershell 使用 MFA 以编程方式对 AAD 进行身份验证