Windows是否有更好的命令提示符?

时间:2020-03-06 14:56:04  来源:igfitidea点击:

由于某些原因,Windows命令提示符是"特殊的",因为我们必须转到属性对话框以水平调整其大小,而不是像其他所有应用程序一样仅拖动窗口的一角。毫不奇怪的是,此功能也使其成为了P-P-P-Powershell-是否可以通过命令提示符替换或者Windows黑客解决此问题?

解决方案

2016年更新:

  • Windows 10的默认conhost UI具有更多功能,包括自由调整大小,透明度等(包括cmd和powershell)
  • 我现在使用ConEmu(这里是演练),它具有许多功能,包括选项卡和拆分窗格。
  • 其他选项包括Cmder(内置其他工具)和ConsoleZ(Console2的分支)。
  • 控制台似乎不再更新

我们可以考虑安装FAR。这是一个出色的文本模式文件管理器等等。也可以通过拖动窗口的一角来调整它的大小:)

如果我们不介意安装cygwin,则可以将其与xterm或者rxvt一起使用。我们还可以使用Bash作为外壳程序,而不是使用cmd.exe更好。

这并不是我们要找的东西,但是我要解决的方法是使用cygwin的无根X-Windows模式和XTerms。与Windows的env相比,我更喜欢unix命令行环境,并且XTerm窗口的行为与其他任何窗口一样。

至于直接替换,谷歌快速搜索显示以下内容:

  • 安慰
  • 控制台

我没有尝试过,所以我不确定他们是否有我们想要的东西,但是他们可能值得一试。

我不知道这是否是我们想要的:调整Powershell控制台窗口的大小。如果是这样,我前一阵子就知道了:只需键入:调整大小并使用箭头键来调整宽度和高度。

##
## Author   : Roman Kuzmin
## Synopsis : Resize console window/buffer using arrow keys
##

function Size($w, $h)
{
    New-Object System.Management.Automation.Host.Size($w, $h)
}

function resize()
{
Write-Host '[Arrows] resize  [Esc] exit ...'
$ErrorActionPreference = 'SilentlyContinue'
for($ui = $Host.UI.RawUI;;) {
    $b = $ui.BufferSize
    $w = $ui.WindowSize
    switch($ui.ReadKey(6).VirtualKeyCode) {
        37 {
            $w = Size ($w.width - 1) $w.height
            $ui.WindowSize = $w
            $ui.BufferSize = Size $w.width $b.height
            break
        }
        39 {
            $w = Size ($w.width + 1) $w.height
            $ui.BufferSize = Size $w.width $b.height
            $ui.WindowSize = $w
            break
        }
        38 {
            $ui.WindowSize = Size $w.width ($w.height - 1)
            break
        }
        40 {
            $w = Size $w.width ($w.height + 1)
            if ($w.height -gt $b.height) {
                $ui.BufferSize = Size $b.width $w.height
            }
            $ui.WindowSize = $w
            break
        }
        27 {
            return
        }
    }
  }
}

如果设置属性"布局/屏幕缓冲区大小/宽度",则在出现提示时,选择"修改启动此窗口的快捷方式",它将记住缓冲区的宽度。然后,当我们启动另一个命令提示符时,它将是原来的80宽度,但是现在我们可以将其拉伸到我们将缓冲区宽度设置为的任何宽度。

命令提示符将不会以当前窗口宽度自动换行,而只会以缓冲区宽度自动换行。因此,如果将缓冲区宽度设置为120,但是窗口只有80宽,则行将以120换行,并且我们必须滚动阅读以读取80以上的字符。

PowerShell v2.0附带一个交互式外壳,称为PowerShell集成脚本环境(ISE)。这并不理想,但是通常比控制台子系统更好。

好的

  • 包括带有颜色的PowerShell脚本编辑器
  • 提示颜色作为一种类型
  • 我可以将多个PowerShell会话(包括远程会话)作为选项卡。
  • ISE支持PowerShell,因此我可以使用PowerShell对其进行操作和扩展。例如,请参阅" IsePack",其中添加了很多功能,包括" HTML复制"。
  • 可以轻松缩放文字
  • 常规的Windows大小调整,光标导航,选择,复制,粘贴,字体等。

坏的

  • 交互式控制台应用程序阻止等待输入,因此挂起。
  • 检测其标准IO是否已重定向的控制台应用程序会认为是这样,因此行为异常。最糟糕的是TFS的tf.exe。例如,即使提示是GUI而不是CLI," tf Submit"也将在没有提示的情况下提交。
  • 开箱即用的有限功能。显然,他们希望开发一个功能更丰富的PowerShell IDE,但实际上并没有。