DOS - 如何获取cmd窗口的高度(以行为单位)?

时间:2013-10-28 01:14:28

标签: windows powershell batch-file cmd

我想做一个个性化的“更多”命令,逐行输出这些行。 因此,我需要以一个单位为单位来获取变量中窗口的高度。 有没有办法在批处理文件中做到这一点?

否则,我怎么能使用more命令(或类似的命令),但是有一个标题可以看到每个页面上的标题栏被回显?

4 个答案:

答案 0 :(得分:5)

由于您使用PowerShell标记了问题,因此这是用于获取PowerShell控制台高度的PowerShell脚本:

C:\PS> $host.UI.RawUI.WindowSize.Height
50

要将其保存到BAT文件中的变量,请执行以下操作:

FOR /F "delims=" %A in ('powershell.exe -noprofile -command $host.ui.rawui.WindowSize.Height') do SET result=%A
echo %result%

答案 1 :(得分:1)

您无法使用纯批处理命令执行此操作,您需要一个.exe程序。例如,您可以这样使用我的Window.exe程序:

Window.exe size
set /A "lines=%errorlevel%>>16"

您可以从this post

获取Window.exe程序

到目前为止,Windows.exe文件长3072字节,而powershell.exe长度超过450000字节并运行慢得多以获得相同的结果!

答案 2 :(得分:0)

仅需一行:

for /f tokens^=2 %%L in ('mode con^|find "Lin"')do set _lines=%%~L"

答案 3 :(得分:-1)

好的,你可以通过以下方式获得整个控制台中的最大行数:

mode con: /status | more +3 > stat.txt
set /p lines=<stat.txt
del stat.txt

更改最大行数:

mode con cols=80 lines=[number of lines]

你可以限制consol有多少行,即最大行数。如果他们将控制台尺寸更改为更小的尺寸,滚动条将允许它们移动。

除此之外,我不知道有什么方法可以做你想做的事。

莫纳