文本艺术/横幅未出现在 cmd 提示符中 (Unicode/ASCII)
Posted
技术标签:
【中文标题】文本艺术/横幅未出现在 cmd 提示符中 (Unicode/ASCII)【英文标题】:Text art/Banner Not Appearing In cmd Prompt (Unicode/ASCII) 【发布时间】:2021-12-19 19:33:51 【问题描述】:当我从 cmd 提示符执行文件或从批处理文件运行时,我希望它出现在 cmd 提示符中:
⢸⣿⣿⣿⣿⠃⠄⢀⣴⡾⠃⠄⠄⠄⠄⠄⠈⠺⠟⠛⠛⠛⠛⠻⢿⣿⣿⣿⣿⣶⣤⡀⠄
⢸⣿⣿⣿⡟⢀⣴⣿⡿⠁⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⣸⣿⣿⣿⣿⣿⣿⣿⣷
⢸⣿⣿⠟⣴⣿⡿⡟⡼⢹⣷⢲⡶⣖⣾⣶⢄⠄⠄⠄⠄⠄⢀⣼⣿⢿⣿⣿⣿⣿⣿⣿⣿
⢸⣿⢫⣾⣿⡟⣾⡸⢠⡿⢳⡿⠍⣼⣿⢏⣿⣷⢄⡀⠄⢠⣾⢻⣿⣸⣿⣿⣿⣿⣿⣿⣿
⡿⣡⣿⣿⡟⡼⡁⠁⣰⠂⡾⠉⢨⣿⠃⣿⡿⠍⣾⣟⢤⣿⢇⣿⢇⣿⣿⢿⣿⣿⣿⣿⣿
⣱⣿⣿⡟⡐⣰⣧⡷⣿⣴⣧⣤⣼⣯⢸⡿⠁⣰⠟⢀⣼⠏⣲⠏⢸⣿⡟⣿⣿⣿⣿⣿⣿
⣿⣿⡟⠁⠄⠟⣁⠄⢡⣿⣿⣿⣿⣿⣿⣦⣼⢟⢀⡼⠃⡹⠃⡀⢸⡿⢸⣿⣿⣿⣿⣿⡟
⣿⣿⠃⠄⢀⣾⠋⠓⢰⣿⣿⣿⣿⣿⣿⠿⣿⣿⣾⣅⢔⣕⡇⡇⡼⢁⣿⣿⣿⣿⣿⣿⢣
⣿⡟⠄⠄⣾⣇⠷⣢⣿⣿⣿⣿⣿⣿⣿⣭⣀⡈⠙⢿⣿⣿⡇⡧⢁⣾⣿⣿⣿⣿⣿⢏⣾
⣿⡇⠄⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⢻⠇⠄⠄⢿⣿⡇⢡⣾⣿⣿⣿⣿⣿⣏⣼⣿
⣿⣷⢰⣿⣿⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⢰⣧⣀⡄⢀⠘⡿⣰⣿⣿⣿⣿⣿⣿⠟⣼⣿⣿
⢹⣿⢸⣿⣿⠟⠻⢿⣿⣿⣿⣿⣿⣿⣿⣶⣭⣉⣤⣿⢈⣼⣿⣿⣿⣿⣿⣿⠏⣾⣹⣿⣿
⢸⠇⡜⣿⡟⠄⠄⠄⠈⠙⣿⣿⣿⣿⣿⣿⣿⣿⠟⣱⣻⣿⣿⣿⣿⣿⠟⠁⢳⠃⣿⣿⣿
⠄⣰⡗⠹⣿⣄⠄⠄⠄⢀⣿⣿⣿⣿⣿⣿⠟⣅⣥⣿⣿⣿⣿⠿⠋⠄⠄⣾⡌⢠⣿⡿⠃
⠜⠋⢠⣷⢻⣿⣿⣶⣾⣿⣿⣿⣿⠿⣛⣥⣾⣿⠿⠟⠛⠉⠄⠄
我为它创建了一个文本文件,并试图在批处理文件中打开该 txt 文件,但它显示了一堆乱码。这是批处理文件代码:
@ECHO OFF
Art Gallery
color 0b
mode 300
ECHO Welcome to Art!
pause>null
cls
ECHO this is art
ECHO.
type Test1.txt
pause>null
del null
我安装了盲文字体并将其添加到注册表中,但没有出现在属性下。我对脚本不太熟悉,所以想提供建设性的反馈。
谢谢!
【问题讨论】:
您是在编写 bash 脚本还是 BAT 文件?请不要随意选择标签。 不错的 ascii art 顺便说一句,但其余的都不好 :-)NUL
设备只有一个L
。
它们不是随机的,抱歉,我认为它们是相关的。我的错。
为什么有人将他的控制台字体更改为盲文只是为了看到这一点,然后将其改回以便 CMD 像以前一样工作?我真的不明白。
【参考方案1】:
感谢@Squashman 的指示,我们可以添加一个小的系统 FONT 命令,这是Jean-François Larvoire 的众多命令之一,用于即时切换控制台字体。
您需要确保在当前路径中找到该库中的 Font.exe,否则将完整路径添加到代码中(在设置路径之前删除 rem)。请注意,虽然我使用的是 MS Gothic,但其他人也可以使用,您还可以设置字体样式,例如粗细或使用不同的字符宽度/高度。
@echo off & cls & Title Face
::ÿþ
REM for this usage setlocal is surplus to requirement but included if needed later
rem setlocal enableExtensions enableDelayedExpansion
rem set "path=c:\wherever font.exe is e.g c:\utils\systools;%path%"
for /f "delims=" %%f in ('Font -s') do @set "OLD_Font=%%f"
Font "MS Gothic"
for /f "tokens=2 delims=:." %%c in ('ChCp') do @set "OLD_ChCp=%%~c"
if not defined OLD_ChCp set "OLD_ChCp=850"
ChCp 65001>nul
echo/
for %%e in (
⢸⣿⣿⣿⣿⠃⠄⢀⣴⡾⠃⠄⠄⠄⠄⠄⠈⠺⠟⠛⠛⠛⠛⠻⢿⣿⣿⣿⣿⣶⣤⡀⠄
⢸⣿⣿⣿⡟⢀⣴⣿⡿⠁⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⣸⣿⣿⣿⣿⣿⣿⣿⣷
⢸⣿⣿⠟⣴⣿⡿⡟⡼⢹⣷⢲⡶⣖⣾⣶⢄⠄⠄⠄⠄⠄⢀⣼⣿⢿⣿⣿⣿⣿⣿⣿⣿
⢸⣿⢫⣾⣿⡟⣾⡸⢠⡿⢳⡿⠍⣼⣿⢏⣿⣷⢄⡀⠄⢠⣾⢻⣿⣸⣿⣿⣿⣿⣿⣿⣿
⡿⣡⣿⣿⡟⡼⡁⠁⣰⠂⡾⠉⢨⣿⠃⣿⡿⠍⣾⣟⢤⣿⢇⣿⢇⣿⣿⢿⣿⣿⣿⣿⣿
⣱⣿⣿⡟⡐⣰⣧⡷⣿⣴⣧⣤⣼⣯⢸⡿⠁⣰⠟⢀⣼⠏⣲⠏⢸⣿⡟⣿⣿⣿⣿⣿⣿
⣿⣿⡟⠁⠄⠟⣁⠄⢡⣿⣿⣿⣿⣿⣿⣦⣼⢟⢀⡼⠃⡹⠃⡀⢸⡿⢸⣿⣿⣿⣿⣿⡟
⣿⣿⠃⠄⢀⣾⠋⠓⢰⣿⣿⣿⣿⣿⣿⠿⣿⣿⣾⣅⢔⣕⡇⡇⡼⢁⣿⣿⣿⣿⣿⣿⢣
⣿⡟⠄⠄⣾⣇⠷⣢⣿⣿⣿⣿⣿⣿⣿⣭⣀⡈⠙⢿⣿⣿⡇⡧⢁⣾⣿⣿⣿⣿⣿⢏⣾
⣿⡇⠄⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⢻⠇⠄⠄⢿⣿⡇⢡⣾⣿⣿⣿⣿⣿⣏⣼⣿
⣿⣷⢰⣿⣿⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⢰⣧⣀⡄⢀⠘⡿⣰⣿⣿⣿⣿⣿⣿⠟⣼⣿⣿
⢹⣿⢸⣿⣿⠟⠻⢿⣿⣿⣿⣿⣿⣿⣿⣶⣭⣉⣤⣿⢈⣼⣿⣿⣿⣿⣿⣿⠏⣾⣹⣿⣿
⢸⠇⡜⣿⡟⠄⠄⠄⠈⠙⣿⣿⣿⣿⣿⣿⣿⣿⠟⣱⣻⣿⣿⣿⣿⣿⠟⠁⢳⠃⣿⣿⣿
⠄⣰⡗⠹⣿⣄⠄⠄⠄⢀⣿⣿⣿⣿⣿⣿⠟⣅⣥⣿⣿⣿⣿⠿⠋⠄⠄⣾⡌⢠⣿⡿⠃
⠜⠋⢠⣷⢻⣿⣿⣶⣾⣿⣿⣿⣿⠿⣛⣥⣾⣿⠿⠟⠛⠉⠄⠄
) do @echo %%e
echo/
pause
REM tidy-up
Font %OLD_Font%
set OLD_Font=
ChCp %OLD_ChCp%>nul
set OLD_ChCp=
endlocal
REM exit
【讨论】:
这也很有帮助!当我回到我的电脑时,我会试试这个。非常感谢!【参考方案2】:您有一个文本文件,其中包含来自 Unicode 块 U+28xx 的盲文字符。
虽然我还没有使用盲文字体,但我认为它可以代表盲文中的普通字符(A-Z 等),这意味着:ASCII 字符 65 或A
将显示为⠁
。这使得非盲人更容易在“可读”和盲文文本之间切换。他们可以像往常一样打字。
胡言乱语可能看起来像这样。这是打印在代码页 850 上的 UTF-8 文件:
E:\>type text1.txt
Ôó©Ôú┐Ôú┐Ôú┐Ôú┐ÔáâÔáäÔóÇÔú┤Ôí¥ÔáâÔáäÔáäÔáäÔáäÔáäÔáêÔá║ÔáƒÔáøÔáøÔáøÔáøÔá╗Ôó┐Ôú┐Ôú┐Ôú┐Ôú┐ÔúÂÔúñÔíÇÔáä
Ôó©Ôú┐Ôú┐Ôú┐ÔíƒÔóÇÔú┤Ôú┐Ôí┐ÔáüÔáäÔáäÔáäÔáäÔáäÔáäÔáäÔáäÔáäÔáäÔáäÔáäÔáäÔáäÔú©Ôú┐Ôú┐Ôú┐Ôú┐Ôú┐Ôú┐Ôú┐ÔúÀ
Ôó©Ôú┐Ôú┐ÔáƒÔú┤Ôú┐Ôí┐ÔíƒÔí╝Ôó╣ÔúÀÔó▓ÔíÂÔúûÔú¥ÔúÂÔóäÔáäÔáäÔáäÔáäÔáäÔóÇÔú╝Ôú┐Ôó┐Ôú┐Ôú┐Ôú┐Ôú┐Ôú┐Ôú┐Ôú┐
考虑到上述情况,您可以将代码页更改为 UTF-8,即
chcp 65001
但这无济于事,因为大多数控制台字体都没有内置盲文字符,结果看起来像这样
E:\>type text1.txt
☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒
☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒
☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒☒
如果您碰巧安装了亚洲语言支持,您会发现更改代码页确实有帮助。 MS Gothic 和 NSimSun 字体带有盲文,但在第 6 行和第 11 行有一些问题,也许是一些组合变音符号?我不完全知道,而且我对 Unicode 的熟悉程度也不高。
【讨论】:
哇,这比我能得到的结果要好得多。我非常感谢您的帮助!你认为安装盲文字体可能有用吗?因为我安装了一个,但它没有出现在我的字体下。可能没有在注册表中做正确的事情。最糟糕的是我可以使用它。再次感谢您! @tlbiro:这种字体可以在线获得吗?它是什么字体(TTF、Monospaced)? 我能够删除问号,但弄乱了 txt 文件。它会工作的,感谢您的所有帮助! 我想通了。您需要启用“使用旧版控制台”。完成此操作并重新启动控制台后,即可选择 FreeMono 字体。 @KJ 我们几年前在 DosTips.com 上讨论过这个问题。我认为那里的一个用户编写了一个小型控制台实用程序,他可以在脚本中间调用它,让他在脚本中间切换字体。以上是关于文本艺术/横幅未出现在 cmd 提示符中 (Unicode/ASCII)的主要内容,如果未能解决你的问题,请参考以下文章