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

问题描述:

出于某种原因,Windows命令提示符是“特殊的”,因为您必须转到属性对话框来水平调整它的大小,而不是像每个其他应用程序一样拖动窗口的角落。毫不奇怪,这个特性也使它成为P-P-P-Powershell - 有没有通过命令提示符替代或Windows hackery解决这个问题的方法?是否有更好的Windows命令提示符?

+2

它实际上是Windows控制台子系统的工件,以及它如何与GUI进行交互。相关功能(包括命令历史记录和功能键)不是特定于外壳的,并且即使在自己的控制台应用程序中也可以工作Powershell只是从csrss(或更高版本的Windows中的conhost)继承这一切。 – Joey 2009-08-01 19:19:24

+0

可能的重复[是否有更好的Windows控制台窗口?](http://*.com/questions/60950/is-there-a-better-windows-console-window) – 2014-07-10 15:23:23

+0

Powershell作为一种“语言”但它受限于与cmd.exe几乎相同的可怕90年代控制台体验 – 2014-08-21 14:35:56

2016更新:

  • 的Windows 10的默认conhost UI具有更多的功能,包括*调整大小,透明度,等等(这包括CMD & PowerShell中)
  • 我现在用ConEmu(演练here),其中有许多功能包括标签&拆分窗格。
  • 其他选项包括Cmder(附带内置附加工具)和ConsoleZ(Console2的一个分支)。
  • Console似乎不再更新
+0

Console ++用于eTerm-like透明度,但我无法调整窗口大小..应该使用1.5还是2.0版本? – Luke 2008-09-30 17:06:53

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

如果你不介意安装cygwin,你可以在xterm或rxvt中使用它。你也可以使用Bash作为shell而不是cmd.exe,这更好。

这不完全是你要找的,但我解决它的方式是使用cygwin的无根X-Windows模式和XTerms。我更喜欢unix命令行环境,而不是Windows的env,而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随附交互式shell,称为PowerShell集成脚本环境(ISE)。这不是太棒了,但通常比控制台子系统更好。

  • 包括PowerShell脚本编辑器,用彩色

  • 彩色化作为在提示符下键入

  • 我可以有多个PowerShell会话,包括远程会议,作为标签。

  • ISE支持PowerShell,所以我可以使用PowerShell进行操作和扩展。例如,请参阅“IsePack”,其中添加了许多功能,包括复制为HTML。

  • 可以轻松扩展的文本

  • 惯用窗口大小调整,光标导航,选择,复制,粘贴,字体等

  • 互动控制台应用程序阻止等待输入,从而挂起。

  • 控制台应用程序检测他们的标准IO是否被重定向会认为是这样,因此很奇怪。最糟糕的是TFS的tf.exe。例如,即使提示符是GUI,而不是CLI,'tf submit'也会提示而不提示。

  • 开箱即用的有限功能。很明显,他们想制作更丰富的PowerShell IDE,但没有。

事后的方式,但事情有所改善。 ConEmu是高度可配置的,并且可以水平和垂直调整大小。它在调整窗口大小时调整字体的大小有点奇怪(对我来说)。有一些关于它的讨论here。 Scott Hanselman拥有written about it,包括与FarManager的整合。