如何批量打印黑色字符ASCII [英] how to print black charaters ascii in batch

查看:69
本文介绍了如何批量打印黑色字符ASCII的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在一个批处理文件中打印一个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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆