如何设置 Windows 默认命令行窗口大小和缓冲区大小
Windows 命令行 cmd 窗口系统默认的大小(80*40)对于现在的屏幕配置已经跟不上时代了,我们总是要把它改大些,而且缓冲区大小也想改得大大的。单纯的为当前的 Windows 命令行窗口修改显示大小和缓冲区大小就简单了,右键命令行窗口标题,属性里改屏幕缓冲区和窗口大小就是,系统会为与当前标题相同的命令行窗口记住你的设置,比如 C:\Windows\system32\cmd.exe。但是经常你又会打开不同标题的命令行窗口,如 Tomat,这时候它又是默认的 80*40 的窗口大小,又得改,再碰不同标题又要改。
于是能否直接修改系统默认的 cmd 窗口和它的缓冲区大小呢,以后碰到新的标题就参考于它。行的,方法是改注册表。
先来看下你可以在命令行下直接指定命令行窗口的大小了,进到命令行执行 mode,可以看到关于控制台的信息如下:
Status for device CON:
----------------------
Lines: 2000
Columns: 120
Keyboard rate: 31
Keyboard delay: 1
Code page: 936
这是我的默认的控制台的大小是 2000 * 120,查看 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\ScreenBufferSize 如果120*40 时值为 002a0078
屏幕缓冲区大小: HKEY_CURRENT_USER\Console\WindowSize 如 120*2000 时值为 07d00078
这是用的十六进制值来表示的,十六进制可以前加零来补齐为 8 位来理解.十六进制的前四位是高,后四位是宽,如:
002a0078 0078 的十进制是 120, 002a 的十进制是 40,窗口大小是 120*40
07d00078 00078 的十进制是 120, 07d0 的十进制是 2000, 缓冲区大小就是 120*2000
因为涉及到十六进制截断成两部分,所以你想直接转换成十进制数来设置就意义不大了,比如 002a0078 的十进制数是 2752632,谁知道这个数与 120*40 有什么关系呢!
如果觉得这样对应起来算起来麻烦,那就想办法从别处 copy 吧,对于直接命令 cmd 进入的窗口设置好你的窗口大小和屏幕缓冲区大小,注册表里会帮你在HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe 下创建有你的两个键值 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
|
在 1280*1024 的屏幕分辨率下我比较喜欢设置的命令行窗口大小和屏幕缓冲区大小分别是: 130*42 和 130*2000,相应的命令就是:
1
2
|
reg add "HKEY_CURRENT_USER\Console" /t REG_DWORD /v WindowSize /d 0x002a0082 /f
reg add "HKEY_CURRENT_USER\Console" /t REG_DWORD /v ScreenBufferSize /d 07d00082 /f
|
我喜欢用 cmd 窗口的快速编辑模式,顺便也把它打开,用命令:
1
|
reg add "HKEY_CURRENT_USER\Console" /t REG_DWORD /v QuickEdit /d 0x0000001 /f
|
以后记下前面三条 reg 命令就 OK 啦,没什么特殊的要求可以不用为某些标题对应的窗口单独设置这些属性了。比如你不需要为 C:\Windows\system32\cmd.exe 单独设置窗口的属性就把注册表的键 HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe 删除了事。
相关推荐
"如何设置Windows默认命令行窗口大小和缓冲区大小" 本文将指导您如何设置Windows默认命令行窗口大小和缓冲区大小。默认情况下,Windows命令行窗口的大小是80*40,但是现在的屏幕配置已经跟不上时代了,我们需要将其...
- **功能**:设置缓冲区大小。 - **参数**:N 表示缓冲区大小,单位为MB。 - **使用场景**:优化复制速度,通常情况下默认值即可满足需求。 ##### 11. `/speed=(full|autoslow|9-1(90%-10%)|suspend)` - **功能**...
- `SetConsoleScreenBufferSize`设置缓冲区大小,影响控制台窗口可以显示的行数和列数。 - `FillConsoleOutputCharacter`和`FillConsoleOutputAttribute`用于填充控制台缓冲区的字符和属性,实现清屏或改变颜色...
5.5.1 复制、填充、移动、清零内存块、防止缓冲区溢出 144 5.5.2 获得当前系统内存使用情况 146 5.5.3 判断内存指针的可用性 147 5.6 各种内存分配方式的关系与比较 148 5.6.1 标准C内存管理函数与Windows...
5.5.1 复制、填充、移动、清零内存块、防止缓冲区溢出 144 5.5.2 获得当前系统内存使用情况 146 5.5.3 判断内存指针的可用性 147 5.6 各种内存分配方式的关系与比较 148 5.6.1 标准C内存管理函数与Windows...
对于TCP方式,此设置为TCP窗口大小。对于UDP方式,此设置为接受UDP数据包的缓冲区大小,限制可以接受数据包的最大值。 -B, --bind host $IPERF_BIND 绑定到主机的多个地址中的一个。对于客户端来说,这个参数设置了...
- `-w`或`--window`: 设置套接字缓冲区大小,TCP时为TCP窗口大小,UDP时为接收数据包的缓冲区大小。 - `-B`或`--bind`: 绑定到特定的主机地址,用于多网络接口的主机。 - `-C`或`--compatibility`: 兼容旧版本iperf...
8. **`GetConsoleScreenBufferInfo`和`SetConsoleScreenBufferInfo`**:获取或设置控制台缓冲区的信息,包括大小、位置、文字属性等。 9. **`CreateConsoleScreenBuffer`和`CloseHandle`**:创建一个新的控制台缓冲...
例如,在某些版本的Windows Server中,操作系统会限制单个TCP/IP连接的接收缓冲区大小,这可能也会影响到大文件上传。在这种情况下,你可能需要通过修改注册表或其他系统配置文件来进一步调整。 ### 总结 通过上述...
5. **优化体验**:为了获得更好的图形性能和体验,你可能需要调整Xming的设置,如减少字体平滑度,或者根据网络情况调整缓冲区大小。 6. **安全注意事项**:虽然X11转发提供了方便,但请注意,这可能会带来安全风险...
GetFileVersionInfoSize 针对包含了版本资源的一个文件,判断容纳文件版本信息需要一个多大的缓冲区 GetFullPathName 获取指定文件的完整路径名 GetLogicalDrives 判断系统中存在哪些逻辑驱动器字母 ...