不好意思,现在才看到兄的回复。公式的确错了,应该是: | set /a FontWidth=8, FontHeight=16 | | set /a FontSize=(FontHeight "<<" 16) "|" FontWidthCOPY |
另外测试不必补零也可以啊~
是否在读取宽/高的时候写错了,测试代码:
设置.bat | @echo Off & setlocal EnableDelayedExpansion | | Set /a FontWidth=8, FontHeight=16 | | Set /a FontSize=(FontHeight "<<" 16) "|" FontWidth | | | | Call :Dec2Hex %FontSize% iFontSize | | Echo 0x%iFontSize% | | Reg Add hkcu\console /v FontSize /t reg_dword /d 0x%iFontSize% | | Pause>nul & Exit /b | | | | | | | | :Dec2Hex | | set num=%1 | | set str=0123456789ABCDEF | | set numDiv=%num% | | set numConn= | | :LoopD2H | | set /a numMod=numDiv%%16 | | set numMod=!str:~%numMod%,1! | | set /a numDiv/=16 | | set numConn=%numMod%%numConn% | | if %numDiv% equ 0 ( | | set %2=%numConn% | | goto :eof | | ) | | goto :LoopD2HCOPY |
读取.bat | @echo Off | | For /f "skip=4 tokens=3" %%a in ('reg query hkcu\console\ /v FontSize') do set /a FontSize=%%a | | | | Set /a FontHeight=FontSize ">>" 16, FontWidth=FontSize "&" 0xffff | | Echo FontWidth: %FontWidth% FontHeight: %FontHeight% | | Pause>nulCOPY |
|