【发布时间】:2020-09-29 21:59:49
【问题描述】:
我想制作一个 *.bat 文件,它可以根据 CMD 的窗口大小而有所不同。
我搜索了一种方法来找到几乎相同的窗口大小,但有时当人们自定义设置时它并不相同。 通常窗口大小为 80 个字符宽和 25 行高。 但有些应用他们自己的自定义设置,所以它可以是其他任何东西。
有没有办法从 *.bat 内部找到实际的窗口大小? 我想尽可能多地保留 *.bat ......换句话说,不是 PowerShell 或 vbs 等等,最好的也是没有 *.tmp 文件。
这是我最感兴趣的。 但同样有趣的是一种方法可以在其中找到正在运行的 *.bat 的缓冲区大小。
有什么方法或想法可以从 *bat 中获取这些信息吗?
替代方法可能是从它自己的 *.bat 文件调整窗口大小或缓冲区大小。 因此,如果我无法获得实际的窗口或缓冲区大小,是否可以在正在处理的 *.bat 中设置窗口或缓冲区大小?
有没有人知道如何从正在运行的 *.bat 中获取或设置这些信息?
到目前为止,我不知道这是否可能以及如何实现? 所以我不能尝试太多我现在可以展示的东西。
更新:
REM Empty Variables
set "ROWS="
set "CHARACTERS="
REM Read CMD Window Size in Rows and Characters per Row.
for /F "tokens=3" %%A in ('reg query HKCU\Console /v WindowSize') do set /A ROWS=%%A/65535
for /F "tokens=3" %%A in ('reg query HKCU\Console /v WindowSize') do set /A "CHARACTERS=%%A&0xffff
REM Test it ...
echo %ROWS%
echo %CHARACTERS%
这将从注册表中读取每行的行数和字符数。 它是https://superuser.com/questions/1330772/cmd-window-size的缩写形式
【问题讨论】:
标签: batch-file cmd window size buffer