文本艺术/横幅未出现在 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)的主要内容,如果未能解决你的问题,请参考以下文章

从 cmd 提示符中的 echo 捕获错误消息

iOS 模拟器中未显示游戏中心完成横幅

uni-app ios运行提示appkey未配置或配置错误

角度示意图条件属性/提示

在文本文件中搜索文本并使用批处理文件在 CMD 提示符下打印

关于uniapp的事件监听,使用uni.$once和uni.$on导致的重复监听