我想做一个个性化的“更多”命令,逐行输出这些行。 因此,我需要以一个单位为单位来获取变量中窗口的高度。 有没有办法在批处理文件中做到这一点?
否则,我怎么能使用more命令(或类似的命令),但是有一个标题可以看到每个页面上的标题栏被回显?
答案 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有多少行,即最大行数。如果他们将控制台尺寸更改为更小的尺寸,滚动条将允许它们移动。
除此之外,我不知道有什么方法可以做你想做的事。
莫纳