天天看點

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:

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,相應的指令就是:

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 視窗的快速編輯模式,順便也把它打開,用指令:

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

繼續閱讀