我想做一个个性化的“更多”命令,其中的行是逐页输出的。因此,我需要以行为单位在变量中获取窗口的高度。有没有办法简单地在批处理文件中做到这一点?
否则,我怎么能使用更多命令(或类似命令),但使用标题来查看每页回显的一种标题栏?
我想做一个个性化的“更多”命令,其中的行是逐页输出的。因此,我需要以行为单位在变量中获取窗口的高度。有没有办法简单地在批处理文件中做到这一点?
否则,我怎么能使用更多命令(或类似命令),但使用标题来查看每页回显的一种标题栏?
由于您使用 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%
你不能用纯批处理命令来做到这一点,你需要一个 .exe 程序。例如,您可以这样使用我的 Window.exe 程序:
Window.exe size
set /A "lines=%errorlevel%>>16"
您可以从这篇文章中获得 Window.exe 程序
同时,Windows.exe 文件的长度为 3072 字节,而 powershell.exe 的长度超过 450000 字节,并且运行速度要慢得多,以便在这种情况下获得相同的结果!
好的,您可以通过以下方式获得整个控制台中的最大行数:
mode con: /status | more +3 > stat.txt
set /p lines=<stat.txt
del stat.txt
要更改最大线,请执行以下操作:
mode con cols=80 lines=[number of lines]
并且您可以限制控制台的行数,即最大行数。如果他们将控制台大小更改为更小,滚动条将允许他们移动。
除此之外,我不知道有什么方法可以做你想做的事。
莫娜
对于一个简单的行:
for /f tokens^=2 %%L in ('mode con^|find "Lin"')do set _lines=%%~L"