![CMD窗口大小](https://linux22.com/image/1563259/CMD%E7%AA%97%E5%8F%A3%E5%A4%A7%E5%B0%8F.png)
每次我打开cmd时窗口大小都是20x5。问题是,即使默认设置设置为80x25,它也不会执行任何操作,每次打开cmd时都需要更改属性。
问题始于我的电脑被感染后,现在每次我打开窗口,登录后都会出现命令提示符,从那时起,所有其他打开的 cmd 窗口都是 20x5 大小。我检查了注册表,值是正确的,尽管它们没有生效。
答案1
NeveraX 提到的注册表项HKCU\Console
并不是全部,用于启动 cmd.exe 的每个 .lnk 文件可能有不同的设置,不太容易发现。
对于 HKCU\Console,我曾经编写过一个批处理来枚举使用的窗口/缓冲区大小:
:: ConsoleSizes.cmd ::::::::::::::::::::::::::::::::::::::::::::::::::::
@echo off
:: Read: <https://blogs.msdn.microsoft.com/commandline/2017/06/20/understanding-windows-console-host-settings/>
setlocal
echo Window_X*Y_^|_Buffer_X*Y_^|_App-key_____________________________
for /F "tokens=1-2,*" %%A in (
'reg query hkcu\console /s^|findstr "\ ScreenBufferS WindowS"'
) do (
if "%%B" NEQ "REG_DWORD" (set "HKCUCon=%%A %%B %%C"&set "SBS="&SET "WS=")
if "%%A" EQU "ScreenBufferSize" set "SBS=%%C"
if "%%A" EQU "WindowSize" set "WS=%%C" & call :display
)
goto :eof
:display
set /A "WSW=WS&0xffff, WSH=WS>>16"
set "WSW= %WSW%"&set "WSH=%WSH% "
set /A "SBW=SBS&0xffff, SBH=SBS>>16"
set "SBW= %SBW%"&set "SBH=%SBH% "
set "HKCUCon=%HKCUCon:HKEY_CURRENT_USER=HKCU%"
echo/%WSW:~-5%*%WSH:~,5%^|%SBW:~-5%*%SBH:~,5% ^| %HKCUCon%
:: ConsoleSizes.cmd ::::::::::::::::::::::::::::::::::::::::::::::::::::
短路输出样例:
> ConsoleSizes.cmd
Window_X*Y_|_Buffer_X*Y_|_App-key_____________________________
80*25 | 80*300 | HKCU\console
130*50 | 130*9000 | HKCU\console\%SystemRoot%_system32_bash.exe
120*60 | 120*9000 | HKCU\console\%SystemRoot%_system32_cmd.exe
120*52 | 120*3000 | HKCU\console\%SystemRoot%_system32_diskpart.exe
148*60 | 148*3000 | HKCU\console\%SystemRoot%_System32_WindowsPowerShell_v1.0_powershell.exe
120*50 | 120*3000 | HKCU\console\%SystemRoot%_SysWOW64_WindowsPowerShell_v1.0_powershell.exe
132*60 | 132*60 | HKCU\console\C:_Program Files_Far Manager_Far.exe
221*98 | 221*98 | HKCU\console\C:_Program Files_Far_Far.exe
132*50 | 132*50 | HKCU\console\C:_Sys_k.exe
132*62 | 132*3000 | HKCU\console\FreeCommander - DOS
编辑我还会检查自动运行注册表项
Reg query "HKCU\Software\Microsoft\Command Processor" /v AutoRun
HKEY_CURRENT_USER\Software\Microsoft\Command Processor
AutoRun REG_SZ Doskey /MacroFile="C:\Users\LotPings\Aliases.txt"
和/或使用由 sysinternals 自动运行
答案2
我知道这是死线,但这个解决方案将来可能会对某些人有所帮助。如果没有这个修复,GNU Octave 将无法正常工作。所以我花了几个小时在网上搜索,差点将 Windows 恢复为默认设置。
我通过应用包含注册表项“HKEY_CURRENT_USER\Console”和“HKEY_CURRENT_USER\Software\Microsoft\Command Processor”的默认值的注册表文件解决了此问题。
您可以在此处找到这些文件https://www.sevenforums.com/tutorials/401170-command-prompt-restore-default-personalization-settings.html
如果这没有帮助,本网站上还有一些针对 Windows 7、8、8.1、10 的其他解决方案。