1

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

否则,我怎么能使用更多命令(或类似命令),但使用标题来查看每页回显的一种标题栏?

4

4 回答 4

4

由于您使用 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%
于 2013-10-28T03:57:37.430 回答
2

你不能用纯批处理命令来做到这一点,你需要一个 .exe 程序。例如,您可以这样使用我的 Window.exe 程序:

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

您可以从这篇文章中获得 Window.exe 程序

同时,Windows.exe 文件的长度为 3072 字节,而 powershell.exe 的长度超过 450000 字节,并且运行速度要慢得多,以便在这种情况下获得相同的结果!

于 2013-10-28T19:56:04.647 回答
0

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

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

要更改最大线,请执行以下操作:

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

并且您可以限制控制台的行数,即最大行数。如果他们将控制台大小更改为更小,滚动条将允许他们移动。

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

莫娜

于 2013-10-28T01:33:56.973 回答
0

对于一个简单的行:

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

于 2019-12-20T13:41:30.380 回答