1. 程式人生 > >改變cmd視窗的大小、顏色、字型的方法

改變cmd視窗的大小、顏色、字型的方法

最簡單的設定方法:
@echo off
mode con cols=40 lines=10
echo wind now moon flower smile
pause


調整cols=40 lines=10的值可改變視窗大小。


》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》


1、預設設定:
HKEY_CURRENT_USER\Console


2、自定義設定:
[HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe]


3、鍵及值:
"WindowPosition"=dword:00640104
"CodePage"=dword:000003a8
"FontSize"=dword:00100008
"FontFamily"=dword:00000030
"FontWeight"=dword:00000190
"HistoryNoDup"=dword:00000000
"FullScreen"=dword:00000000
"ScreenColors"=dword:000000ce
"ScreenBufferSize"=dword:12c0050


4、鍵值意義:
各鍵值均為十六進位制表示
視窗位置-----WindowPosition---高四位為上,低四位為左。
                           如00640104,即距螢幕上沿64H=100,距螢幕左沿104H=260
字型大小-----FontSize---------高四位為字高,低四位為字寬
                           如00100008,即字型寬×高=08H×10H=8×16
全螢幕-------FullScreen-------0:視窗 1:全螢幕(此時WindowPosition失效)
視窗尺寸-----WindowSize-------高四位為高度,低四位為寬度
                           預設00190050,即高19H=25行,寬50H=80列
緩衝區尺寸---ScreenBufferSize-高四位為高度,低四位為寬度
                           預設012c0050,即高12cH=300行,寬50H=80列
字型顏色-----ScreenColors-----低兩位同color設定中的字型顏色值
字型型別-----FontFamily-------36:新宋體 30:點陣字型
當前內碼表---CodePage---------預設3a8H=936:ANSI/OEM-簡體中文GBK
丟棄舊副本---HistoryNoDup-----0:不丟棄 1:丟棄舊副本


5、自定義與預設關係:
系統首先在自定義裡面查詢相關設定,若自定義中沒有,則到預設裡面查詢。
即自定義優先順序高於預設。


6、批處理設定視窗屬性
set rr="HKCU\Console\%%SystemRoot%%_system32_cmd.exe"
reg delete %rr% /f>nul
reg add %rr% /v "WindowPosition" /t REG_DWORD /d 0x00640104 /f>nul
reg add %rr% /v "WindowSize" /t REG_DWORD /d 0x00190050 /f>nul
reg add %rr% /v "ScreenBufferSize" /t REG_DWORD /d 0x00190050 /f>nul
reg add %rr% /v "FullScreen" /t REG_DWORD /d 0x00000001 /f>nul
reg add %rr% /v "FontSize" /t REG_DWORD /d 0x00100008 /f>nul


7、字型大小:
(1)點陣字型(較小)
3×5-------00050003
5×8-------00080005
6×12------000c0006
6×13------000d0006
8×16------00100008
8×18------00120008
10×20-----0014000a
10×22-----0016000a
12×27-----001b000c
(2)新宋體(較大)
6----00060000---3*7
8----00080000---4*9
10---000a0000---5*11
12---000c0000---6*14
14---000e0000---7*16
16---00100000---8*18
18---00120000---9*21
20---00140000---10*23
24---00180000---12*27
28---001c0000---14*32
36---00240000---18*41
72---00480000---36*82


》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》


給批處理建立一個快捷方式,快捷方式屬性裡可以設定彈出視窗位置,通過快捷方式執行批處理就可以控制批處理視窗的位置了。


由此想到一個隱藏,批處理視窗的辦法,雖然可能沒什麼用,但在批處理中設定視窗位置到螢幕外面就可以了隱藏批處理了。


》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
1、大小(①②都會修改登錄檔,所以是永久的)
①建議:執行cmd後,標題欄上點右鍵→屬性→佈局,在“視窗大小”下面的高度和寬度分別填上你想要的數值,點確定,在彈出的對話方塊中選擇“儲存屬性,供以後具有相同標題的視窗使用”
②不宜:reg add "HKCU\SOFTWARE\Microsoft\Command Processor" /v AutoRun /d "mode con cols=300 lines=80" /f(裡面的數字根據自己的需要修改)
要在批處理中即時改變,把上面的程式碼mode con cols=300 lines=80加入到批處理中即可。
2、顏色(和上面類似,也是永久的)
①和上面類似,執行cmd後,標題欄上點右鍵→屬性→顏色,把相應位置改成自己想要的數值。
②還是和上面類似,reg add "HKCU\SOFTWARE\Microsoft\Command Processor" /v AutoRun /d "mode con cols=300 lines=80&color fc" /f(根據自己的需要調整,顏色程式碼參見color /?,)
要在批處理中即時改變,把上面的程式碼color fc加入到批處理中即可。
要實現更復雜的顏色變化(比如每行的顏色都不同),請參考批處理&&彩色文字一文
3、字型(和上面類似,也是永久的)
還是和上面類似,執行cmd後,標題欄上點右鍵→屬性→字型,選擇相應的字型和大小。
要在批處理中設定字型,只能通過修改登錄檔(因為沒有直接設定字型的命令)
@echo off
if not "%1"=="" (
::code here
echo hello
pause
) else (
setlocal EnableDelayedExpansion
rem set "regpath0=hkcu\console\%%SystemRoot%%_system32_cmd.exe"
set "regpath=hkcu\console\NewView"
>nul reg add !regpath! /v FaceName /d "新宋體" /f
>nul reg add !regpath! /v FontSize /t REG_DWORD /d 0x00120000 /f
>nul reg add !regpath! /v FontWeight /t REG_DWORD /d 400 /f
start "NewView" cmd /c %~s0 arg
)
》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
@echo off
title 〓河南黑盟〓
color AD
echo 
echo 請按任意鍵退出……
pause >nul 2>nul
color屬性應用
color [attr]
attr 指定控制檯輸出的顏色屬性
顏色屬性由兩個16進位制數字指定--第一為背景,第二則為前景。每個數字可以為以下任何值之一:
0=黑色          8=灰色
1=藍色          9=淡藍色
2=綠色          A=淡綠色
3=湖藍色        B=淡淺綠色
4=紅色          C=淡紅色
5=紫色          D=淡紫色
6=黃色          E=淡黃色
7=白色          F=亮白色
》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》


使用第三方軟體colorcmd.exe實現


@echo off
echo.
colorcmd 0 0 " "&colorcmd 12 0 ┏&colorcmd 14 0 選項&colorcmd 12 0 ━━━━┓&echo.
colorcmd 0 0 " "&colorcmd 12 0 ┃[&colorcmd 13 0 1&colorcmd 12 0 ]. &colorcmd 11 9 " 選項 1 "&colorcmd 12 0 ┃&echo.
colorcmd 0 0 " "&colorcmd 12 0 ┃[&colorcmd 13 0 2&colorcmd 12 0 ]. &colorcmd 11 0 " 選項 3 "&colorcmd 12 0 ┃&echo.
colorcmd 0 0 " "&colorcmd 12 0 ┃[&colorcmd 13 0 3&colorcmd 12 0 ]. &colorcmd 11 0 " 選項 2 "&colorcmd 12 0 ┃&echo.
colorcmd 0 0 " "&colorcmd 12 0 ┗━━━━━━┛
echo.
pause