【问题标题】:Text art/Banner Not Appearing In cmd Prompt (Unicode/ASCII)文本艺术/横幅未出现在 cmd 提示符中 (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 像以前一样工作?我真的不明白。

标签: windows batch-file text cmd unicode


【解决方案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 上讨论过这个问题。我认为那里的一个用户编写了一个小型控制台实用程序,他可以在脚本中间调用它,让他在脚本中间切换字体。
猜你喜欢
  • 1970-01-01
  • 2021-11-28
  • 1970-01-01
  • 2012-01-25
  • 2013-06-27
  • 1970-01-01
相关资源
最近更新 更多