如何批量打印黑色字符ASCII [英] how to print black charaters ascii in batch
问题描述
我想在一个批处理文件中打印一个ascii ...我尝试使用此代码:
I would like to print an ascii in a batch file... I tried using this code:
@echo off
>%temp%\temp.txt (
echo
echo ███ ▀▄ ▄ ██ ▄ ████▄ ▄ ▄ █ ▄███▄ ▄ ████▄
echo █ █ █ █ █ █ █ █ █ █ █ █ █▀ ▀ ▀▄ █ █ █
echo █ ▀ ▄ ▀█ █▄▄█ ██ █ █ █ ██ █ ██▀▀█ ██▄▄ █ ▀ █ █
echo █ ▄▀ █ █ █ █ █ █ ▀████ █ █ █ █ █ █▄ ▄▀ ▄ █ ▀████
echo ███ ▄▀ █ █ █ █ █ █ █ █ ▀███▀ █ ▀▄
echo █ █ ██ █ ██ ▀ ▀
echo ▀
)
type %temp%\temp.txt
timeout 1 >nul
del %temp%\temp.txt
pause >nul
但是我在输出中得到了这个
but I get this in output:
ECHO diattivato.
ÔûêÔûêÔûê ÔûÇÔûä Ôûä ÔûêÔûê Ôûä ÔûêÔûêÔûêÔûêÔûä Ôûä Ôûä Ôûê ÔûäÔûêÔûêÔûêÔûä Ôûä ÔûêÔûêÔûêÔûêÔûä
Ôûê Ôûê Ôûê Ôûê Ôûê Ôûê Ôûê Ôûê Ôûê Ôûê Ôûê Ôûê ÔûêÔûÇ ÔûÇ ÔûÇÔûä Ôûê Ôûê Ôûê
Ôûê ÔûÇ Ôûä ÔûÇÔûê ÔûêÔûäÔûäÔûê ÔûêÔûê Ôûê Ôûê Ôûê ÔûêÔûê Ôûê ÔûêÔûêÔûÇÔûÇÔûê ÔûêÔûêÔûäÔûä Ôûê ÔûÇ Ôûê Ôûê
Ôûê ÔûäÔûÇ Ôûê Ôûê Ôûê Ôûê Ôûê Ôûê ÔûÇÔûêÔûêÔûêÔûê Ôûê Ôûê Ôûê Ôûê Ôûê ÔûêÔûä ÔûäÔûÇ Ôûä Ôûê ÔûÇÔûêÔûêÔûêÔûê
ÔûêÔûêÔûê ÔûäÔûÇ Ôûê Ôûê Ôûê Ôûê Ôûê Ôûê Ôûê Ôûê ÔûÇÔûêÔûêÔûêÔûÇ Ôûê ÔûÇÔûä
Ôûê Ôûê ÔûêÔûê Ôûê ÔûêÔûê ÔûÇ ÔûÇ
ÔûÇ
我也尝试过在"^"之前改掉这个马车的角色,但它总是一样的...有人可以帮我解决这个问题吗?我没有找到这个问题的其他重复项,所以我在这里问...
I also tried to escape character whit this caracher before the text "^" but it's always the same... Can someone help me fix this problem? I didn't find any other duplicateds of this question so I asked here... .
谢谢,祝你有美好的一天.
Thanks, and have a good day.
推荐答案
Windows命令处理器和批处理文件早在引入UTF-8编码之前已有很长时间了,因此支持远远超出了授予范围.
The Windows Command Processor and batch files exist since quite some time long before UTF-8 encoding was introduced, so the support is far beyond granted.
无论如何,我终于找到了一种正确显示文本的方法–就是这样:
Anyway, I finally found a way to display the text correctly – here it is:
@echo off
rem // Store current code page in a variable for later restore (optional):
for /F "tokens=2 delims=:" %%C in ('chcp') do set /A "$CP=%%C"
rem // Change code page to UTF-8 Unicode:
chcp 65001 > nul
rem // Write text into temporary file:
> "%TEMP%\temp.txt" (
echo/
echo ███ ▀▄ ▄ ██ ▄ ████▄ ▄ ▄ █ ▄███▄ ▄ ████▄
echo █ █ █ █ █ █ █ █ █ █ █ █ █▀ ▀ ▀▄ █ █ █
echo █ ▀ ▄ ▀█ █▄▄█ ██ █ █ █ ██ █ ██▀▀█ ██▄▄ █ ▀ █ █
echo █ ▄▀ █ █ █ █ █ █ ▀████ █ █ █ █ █ █▄ ▄▀ ▄ █ ▀████
echo ███ ▄▀ █ █ █ █ █ █ █ █ ▀███▀ █ ▀▄
echo █ █ ██ █ ██ ▀ ▀
echo ▀
)
rem /* Open a new instance of the Command Processor; inside this,
rem change code page to original IBM PC and type out the temporary file: */
cmd /C chcp 437 ^> nul ^& type "%TEMP%\temp.txt"
rem // Clean up temporary file:
del "%TEMP%\temp.txt"
rem // Restore original code page (optional):
chcp %$CP% > nul
请注意,我已在64位Windows 7(SP1)计算机上对其进行了测试.
Note that I tested it on a 64-bit Windows 7 (SP1) machine.
这是一种不需要临时文件的替代方法:
This is an alternative way that does not require a temporary file:
@echo off
rem // Store current code page in a variable for later restore (optional):
for /F "tokens=2 delims=:" %%C in ('chcp') do set /A "$CP=%%C"
rem // Change code page to UTF-8 Unicode:
chcp 65001 > nul
rem // Provide text in pseudo-comments (invalid labels):
::::
:::: ███ ▀▄ ▄ ██ ▄ ████▄ ▄ ▄ █ ▄███▄ ▄ ████▄
:::: █ █ █ █ █ █ █ █ █ █ █ █ █▀ ▀ ▀▄ █ █ █
:::: █ ▀ ▄ ▀█ █▄▄█ ██ █ █ █ ██ █ ██▀▀█ ██▄▄ █ ▀ █ █
:::: █ ▄▀ █ █ █ █ █ █ ▀████ █ █ █ █ █ █▄ ▄▀ ▄ █ ▀████
:::: ███ ▄▀ █ █ █ █ █ █ █ █ ▀███▀ █ ▀▄
:::: █ █ ██ █ ██ ▀ ▀
:::: ▀
rem /* Instantiate a `for /F` loop, which opens a new Command Processor instance;
rem inside this, change code page to original IBM PC, use `findstr` to extract
rem all lines from this batch file that begin with `::::` and print them with
rem the `::::` prefix removed: */
for /F "delims=:" %%T in ('chcp 437 ^> nul ^& findstr "^::::" "%~f0"') do echo(%%T
rem // Restore original code page (optional):
chcp %$CP% > nul
我不得不承认,可悲的是,我还不知道为什么还需要另一个 cmd
实例.
这篇关于如何批量打印黑色字符ASCII的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!