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 删除了事。

[cmd]如何设置 Windows 默认命令行窗口大小和缓冲区大小的更多相关文章

  1. 如何设置 Windows 默认命令行窗口大小和缓冲区大小

    关键字: 命令行不能全屏 命令行最大化只有一半屏幕 命令行 字体 背景 颜色 解决方案:http://unmi.cc/save-windows-command-size/ 简要说明: win+r,输入 ...

  2. windows更改命令行cmd的字体为conlosas+微软雅黑

    windows更改命令行cmd的字体为conlosas+微软雅黑 动力来源于对美孜孜不倦的追求~ 下载conlosas+微软雅黑字体 谢谢支持. 将解压后的YaHei.Consolas.1.12.tt ...

  3. windows下命令行模式中cd命令无效的原因

    当我们执行cmd 想切换当前工作目录时,会发现windows下命令行模式中cd命令没有生效,到底是什么原因呢? 例如: 当我们想切换到 D:\MySql\mysql-5.7.19-winx64\bin ...

  4. Ubuntu18.04 设置开机进入命令行模式

    首先来了解下启动级别(Runlevel): 指 Unix 或 类 Unix 操作系统下不同的运行模式,运行级别通常分为 7 级: 运行级别 0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启 ...

  5. Windows的命令行怎么支持通配符

    摸索出一个小技巧,虽然Windows的命令行本身不支持通配符,但可以在脚本里把传进来的参数当通配符用 只要加上@ARGV = glob "@ARGV";就行了 @ARGV = gl ...

  6. Windows 通过命令行设置固定ip地址

    Winserver1709 之后 windows系统取消了GUI界面 设置ip地址 需要使用命令行界面进行 这里简单记录一下 打开win1709的虚拟机 进入命令行控制台 输入 ipconfig 查看 ...

  7. windows下命令行设置静态IP

    windows 10 预览版出现无法设置静态IP的bug,只能通过命令行进行设置,开启powershell,然后执行下列的命令即可 下面的"以太网 3" 为你设置的网卡的网卡名称, ...

  8. Ubuntu12.10 设置默认命令行启动

    在虚拟机当中安装ubuntu12.10的时候默认把图形界面给装上了,由于不需要使用桌面,所以为了省去每次进入到图形界面然后再用ctrl+F1的方式切换到命令行的步骤,希望能够默认进入的是命令行模式,那 ...

  9. 【备忘】Windows的命令行下设置网络代理

    在公司访问网络的时候,需要设置代理,设置浏览器的代理是相当的方便了.但有的时候要使用命令行,就需要自己设置了(貌似只要浏览器设置好了,可以直接使用命令行,但我们公司的借,需要有用户名和密码,如果没有使 ...

随机推荐

  1. python读写文件中read()、readline()和readlines()的用法

    python中有三种读取文件的函数: read() readline() readlines() 然而它们的区别是什么呢,在平时用到时总会遇到,今天总结一下. 0. 前期工作 首先新建一个文件read ...

  2. Postman 测试swagger类接口技巧

    测试情景: 公司的项目接口越来越多,由于开发周期短,时间紧,缺乏接口文档,直接使用swagger记录所有接口信息.那么: 1. 我们如何更快的测试动辄300+数量的接口,如何分组管理和维护这些接口? ...

  3. [Java笔记]面向对象-单例模式

    单例模式 目标 使JVM中最多只有一个该类的实例,以节省内存.缺点:只能建一个该类的实例. 实现 具体实现思路: 1构造方法私有化//故在外面不能new很多次 2对外提供一个公开的静态的类方法,获取类 ...

  4. iOS指令集

    公司在进行项目重构时,其中一个地方的改动就是调整了iOS的指令集.更改指令集主要可以对手机应用的安装机型做出控制,同时在研发过程中也可以控制相关的模拟器和真机.它们原则上是向下兼容的,比如iphone ...

  5. 理解Backtracking

    Backtracking is an algorithm for finding all solutions by exploring all potential candidates. If the ...

  6. 34-ssm 最简洁的模板

    见 csdn :https://download.csdn.net/download/qq_39451578/10931448

  7. faiss CPU版本+GPU版本安装

    faiss安装 faiss是facebook开发的有CPU版本和GPU版本的求密集向量相似性和进行密集向量聚类的库. faiss用c++编写,安装faiss需要在github上下载其c++源码并用ma ...

  8. VS2013中Nuget程序包管理器控制台使用入门(一)-准备环境(原创)

    准备环境: 1.打开VS2013IDE集成开发环境. 2.新建一个Asp.net Mvc的项目,比如命名为:MvcApplication1 3.打开 菜单"工具"->&quo ...

  9. DevExpress XPO 开发指南 简要

    最近在看devexpress   安装程序中的代码Demos ..  C:\Users\Public\Documents\DevExpress Demos 16.1\Components\WinFor ...

  10. Android开发颜色大全

    <!-- dialog背景颜色 --> <color name=</color> <color name="white">#FFFFFF& ...