您的位置:首页 > 其它

用命令行设置 Windows 命令行窗口大小和缓冲区大小

2016-05-20 09:31 393 查看
背景:使用命令行来修改windows 命令行窗口了的大小和屏幕缓冲区的大小(宽度和高度)
方法:方法是改注册表。先来看下你可以在命令行下直接指定命令行窗口的大小了,进到命令行执行 mode,可以看到关于控制台的信息如下:设备状态 CON:
---------
行:  300
列:   80
键盘速度: 31
键盘延迟:  1
代码页: 936这是我的默认的控制台的大小是 300 * 80,查看 mode 命令的使用,用 mode /? 关于显示模式的修改提示是:Display mode: MODE CON[:] [COLS=c] [LINES=n]于是可以用命令 mode con cols=120 lines=40 或 mode 120,40 来修改窗口大小为 120*40,窗口大小是被改成了你想要的 120*40, 可是悲催的是屏幕缓冲区的大小也变成了 120*40,这让你无法追溯屏幕打印的历史,也就是说 mode 对于窗口大小和屏幕缓冲区大小不能单独设置。如果启动 cmd.exe 时同时指定窗口大小为 120*40,可以用参数 /k,完整命令是:cmd /k "mode con:cols=120 lines=40" 或 cmd /k "mode 120,40"
终极的办法就是修改注册表,先要知道保存系统默认的 cmd 命令窗口的屏幕缓冲区大小的两个键值分别是:窗口大小: HKEY_CURRENT_USER\Console\WindowSize
屏幕缓冲区大小: HKEY_CURRENT_USER\Console\ScreenBufferSize

这是用的十六进制值来表示的,十六进制的前四位是高,后四位是宽(高*宽),如:002a0078 0078 的十进制是 120, 002a 的十进制是 40,窗口大小是 40*120
07d00078 0078 的十进制是 120, 07d0 的十进制是 2000, 缓冲区大小就是 2000*120

注册表里会帮你在 HKEY_CURRENT_USER\Console\ 下创建有你的两个键值 WindowSize和 ScreenBufferSize,把这两值分别应用给 HKEY_CURRENT_USER\Console\WindowSize
HKEY_CURRENT_USER\Console\ScreenBufferSize
下次只要是进到命令行窗口时,默认就会应用这个大小知道个中原理,你想用什么工具来修改注册表的那两值就随你啦,可以是导出的 reg 文件,或是用下面两条命令来把窗口大小和屏幕缓冲区大小分别改成 120*40 和 120*2000:
1
2
reg add
"HKEY_CURRENT_USER\Console"
/t
REG_DWORD
/v
WindowSize
/d
0x002a0078
/f

reg add
"HKEY_CURRENT_USER\Console"
/t
REG_DWORD
/v
ScreenBufferSize
/d
0x07d00078
/f

参考:http://unmi.cc/save-windows-command-size/, 来自 隔叶黄莺 Unmi Blog
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息