背景:使用命令行来修改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
|
参考:http://unmi.cc/save-windows-command-size/, 来自 隔叶黄莺 Unmi Blog