設定CMD視窗大小

聽海★藍心夢發表於2011-09-25
一、先看看在Windows的設定方法:

寬高知道
mode con cols=98 lines=35
左右怎麼設【命令】


全屏怎麼設【命令】[已找到]
@Echo Off
rem 批處理無所不能
echo exit |%ComSpec% /k prompt e 100 B4 00 B0 12 CD 10 B0 03 CD 10 CD 20 $_g$_q$_ |debug >nul
chcp 437 >nul
graftabl 936 >nul



二、用批處理命令來設定(下面是透過修改登錄檔來設定,會影響到其他批處理視窗大小,不建議使用。)

先看一使用例項:

@echo off
set rr="HKCU\Console\%%SystemRoot%%_system32_cmd.exe"

reg add %rr% /v "WindowPosition" /t REG_DWORD /d 0x010e0140 /f>nul
::WindowPosition表示視窗位置,高四位為上,低四位為左,距螢幕上沿10eH=270,距螢幕左沿140H=320。

reg add %rr% /v "ScreenBufferSize" /t REG_DWORD /d 0x000a002d /f>nul
::ScreenBufferSize表示緩衝區尺寸,高四位為高度,低四位為寬度,高aH=10行,寬2dH=45列。

reg add %rr% /v "WindowSize" /t REG_DWORD /d 0x000a002d /f>nul
::WindowSize表示視窗尺寸,高四位為高度,低四位為寬度,高aH=10行,寬2dH=45列。
::也可以用mode con cols=45 lines=10來設定視窗尺寸,cols設定寬度,lines設定高度。

if not defined ff (set ff=0&start cmd /c %0&exit)

TITLE 新增/刪除開機光碟機啟動選單
::title設定標題。

COLOR 8B
::color設定背景色和字型顏色

echo 大牙貓電腦維護工作室歡迎您!
pause


具體設定說明

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

以上是自定義cmd視窗屬性的基本知識,下面提供一個例項,是一個小遊戲:猜數字。

@echo off
set rr="HKCU\Console\%%SystemRoot%%_system32_cmd.exe"
reg add %rr% /v "WindowPosition" /t REG_DWORD /d 0x0064020b /f>nul
reg add %rr% /v "WindowSize" /t REG_DWORD /d 0x000e0015 /f>nul
reg add %rr% /v "ScreenBufferSize" /t REG_DWORD /d 0x000e0015 /f>nul
if not defined ff (set ff=0&start cmd /c %0&exit)
::mode con cols=21 lines=14
title 猜數字
setlocal enabledelayedexpansion
cd /d %TEMP%

>tmp.bat echo @echo off
>>tmp.bat echo title 輸入數字
>>tmp.bat echo for /l %%%%i in (1,1,6) do echo.
>>tmp.bat echo set /p num=輸入數字:
>>tmp.bat echo echo %%num%%^>tm.tmp
>>tmp.bat echo exit

:main
cls
set times=0
echo 次 數字   狀況
:again
set n1=%random:~-1%
set n2=
set n3=
set n4=
:value
set n=%random:~-1%
if "%n2%"=="" if %n% NEQ %n1% set n2=%n%
if "%n3%"=="" if %n% NEQ %n1% if %n% NEQ %n2% set n3=%n%
if "%n4%"=="" if %n% NEQ %n1% if %n% NEQ %n2% if %n% NEQ %n3% set n4=%n%
if "%n4%"=="" goto :value
::echo %n1%,%n2%,%n3%,%n4%
:check
if %times% EQU 8 goto :end
set A=0&set B=0&set m=0
reg add %rr% /v "WindowPosition" /t REG_DWORD /d 0x0064015c /f>nul
reg add %rr% /v "WindowSize" /t REG_DWORD /d 0x000e0015 /f>nul
reg add %rr% /v "ScreenBufferSize" /t REG_DWORD /d 0x000e0015 /f>nul
start /wait cmd /k tmp.bat
reg delete %rr% /f>nul
set /p num=del tm.tmp&set /a times+=1
if /i "%num%"=="exit" (del tm.tmp&del tmp.bat&exit)
for %%i in (%n1%,%n2%,%n3%,%n4%) do (
(echo %num%|find "%%i")>nul&&(
set /a B+=1
call set k=%%num:~!m!,1%%
if "%%i"=="!k!" set /a A+=1
)&set /a m+=1
)
echo %times% %num%   %A%A%B%B
if %A% NEQ 4 goto :check
del tmp.bat
echo   恭喜你,答對了!
pause>nul
exit

:end
echo.
echo     你已試了8次了!
echo    答案是%n1%%n2%%n3%%n4%
echo    再來一次吧!
set /p ff=
if /i "%ff%"=="N" (del tmp.bat&exit)
goto :main

三、透過第三方軟體SW.exe來設定CMD視窗的位置

使用方法:
SW [編號]                 (1個引數->當前視窗)
SW [編號] [指定視窗標題]   (2個引數->指定標題視窗||若含空格鍵,請用雙引號括起)
(附:窗體前置)SW [指定視窗標題] [螢幕x座標] [螢幕y座標] [視窗寬度] [視窗高度]

可選引數編號
       0   隱藏視窗
       1   顯示視窗
       2   最大化視窗
       3   最小化視窗
       4   閃爍視窗
               (返還值0表示失敗,返還值1表示成功!)
例子:
SW 2
SW 4 我的電腦
SW 命令提示符 0 0 600 500

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/751371/viewspace-708266/,如需轉載,請註明出處,否則將追究法律責任。

相關文章