我使用PowerShell开发了一个充当基于控制台的应用程序(想想ncurses)的脚本。
字体 Lucida控制台在脚本的快捷方式中配置。
我希望为用户提供更改字体大小的功能。以下模块就是这样,但字体始终重置为'光栅字体':https://4sysops.com/archives/change-powershell-console-font-size-with-cmdlet/
我不明白为什么会发生这种情况,因为代码似乎会根据对当前字体信息的引用来生成合法字体大小列表。
看来有效字体大小列表由控制台窗口大小决定(可能还有其他因素我没有考虑过。)
例如, get-consolefontinfo | format-table 在窗口大小为120x64时返回以下内容:
nFont dwFontSizeX dwFontSizeY
----- ----------- -----------
0 84 42
1 70 48
2 52 64
3 105 64
4 105 64
5 120 64
6 120 64
7 168 64
8 52 96
9 105 96
10 140 96
11 210 128
窗口大小为106x51时,它返回:
nFont dwFontSizeX dwFontSizeY
----- ----------- -----------
0 104 49
1 114 49
2 125 49
3 104 55
4 78 73
5 156 73
6 179 73
7 250 73
8 78 110
9 156 110
10 209 110
11 313 147
应用的字体(Consolas,Lucida控制台或光栅字体)将根据所选索引而有所不同。
因此,与我的问题相反,此模块并不总是将字体重置为'光栅字体'。
答案 0 :(得分:0)
我做了一些测试。我想你不能用这个模块直接改变大小(我的默认控制台字体是 Consolas ):
Set-ConsoleFont 1 #Raster Fonts
...
Set-ConsoleFont 9 #Raster Fonts
Set-ConsoleFont 10 #Consolas
Set-ConsoleFont 11 #Consolas
代码似乎生成基于a的合法字体大小列表 参考当前的字体信息。
根据模块的描述:
获取-ConsoleFontInfo 强>
列出当前控制台的可用字体。