2013-10-28 24 views
11

所以..这对我来说(无论如何)这个程序的最重要的特点。我需要这个工作。大家不要笑..(好吧,你可以笑),但是当我的程序错误,我希望它显示这样:如何在批处理文件中回显包含特殊字符的ASCII艺术?

  _ _,---._ 
     ,-','  `-.___ 
     /-;'    `._ 
    /\/   ._ _,'o \ 
    (/\  _,--'\,','"`.) 
    |\  ,'o  \' //\ 
    |  \  / ,--'""`-. 
    :  \_ _/ ,-'   `-._ 
     \  `--'/    ) 
     `. \`._ ,'  ________,',' 
     .--`  ,' ,--` __\___,;' 
      \`.,-- ,' ,`_)--' /`.,' 
      \(; | |)  (`-/ 
      `--'| |)  |-/ 
       | | |  | | 
       | | |,.,-. | |_ 
       | `.//)---` ) 
       _|/ ,', ,-' 
      ,'|_( /-<._,' |--, 
      | `--'---.  \/ \ 
      |  /\ /\ \ 
      ,-^---._  | \/\ \ 
     ,-'  \----' \/ \--`. 
    /   \    \ \ 

呼应每一行不行......

echo    _ _,---._ 
echo   ,-','  `-.___ 
echo   /-;'    `._ 
echo   /\/   ._ _,'o \ 
echo  (/\  _,--'\,','"`.) 
echo   |\  ,'o  \' //\ 
echo   |  \  / ,--'""`-. 
echo   :  \_ _/ ,-'   `-._ 
echo   \  `--'/    ) 
echo   `. \`._ ,'  ________,',' 
echo    .--`  ,' ,--` __\___,;' 
echo    \`.,-- ,' ,`_)--' /`.,' 
echo    \(; | |)  (`-/ 
echo     `--'| |)  |-/ 
echo     | | |  | | 
echo     | | |,.,-. | |_ 
echo     | `.//)---` ) 
echo     _|/ ,', ,-' 
echo     ,'|_( /-<._,' |--, 
echo     | `--'---.  \/ \ 
echo     |  /\ /\ \ 
echo    ,-^---._  | \/\ \ 
echo   ,-'  \----' \/ \--`. 
echo   /   \    \ \ 

我假设这是因为文本中的符号。任何方式来解决它?或者我需要放弃在“DOH”屏幕上?

回答

10

将图像存储在文件(doh.txt)中。然后在批处理文件中使用type doh.txt

+0

感谢您的快速响应。我真的更喜欢它在cmd提示符中加载ASCII,因为它会在错误发生后提示用户输入。 – user2863294

+0

@ user2863294 - 你的评论对我没有意义。在使用TYPE将文件内容打印到屏幕后,批处理脚本可以简单地提示用户输入错误。 – dbenham

+0

哦!我在平板电脑上,并没有意识到“类型”是命令的一部分!辉煌! – user2863294

0
@echo off 
echo    _ _,---._ 
echo   ,-','  `-.___ 
echo   /-;'    `._ 
echo   /\/   ._ _,'o \ 
echo  (/\  _,--'\,','"`.) 
echo   ^|\  ,'o  \' //\ 
echo   ^|  \  / ,--'""`-. 
echo   :  \_ _/ ,-'   `-._ 
echo   \  `--'/    ) 
echo   `. \`._ ,'  ________,',' 
echo    .--`  ,' ,--` __\___,;' 
echo    \`.,-- ,' ,`_)--' /`.,' 
echo    \^(; ^| ^|)  ^(`-/ 
echo     `--'^| ^|^)  ^|-/ 
echo     ^| ^| ^|  ^| ^| 
echo     ^| ^| ^|,.,-. ^| ^|_ 
echo     ^| `.//)---` ) 
echo     _^|/ ,', ,-' 
echo     ,'^|_( /-^<._,' ^|--, 
echo     ^| `--'---.  \/ \ 
echo     ^|  /\ /\ \ 
echo    ,-^---._  ^| \/\ \ 
echo   ,-'  \----' \/ \--`. 
echo   /   \    \ \ 

http://www.robvanderwoude.com/escapechars.php

15

包括在你的脚本如下:

::: 
:::    _ _,---._ 
:::   ,-','  `-.___ 
:::   /-;'    `._ 
:::   /\/   ._ _,'o \ 
:::  (/\  _,--'\,','"`.) 
:::   |\  ,'o  \' //\ 
:::   |  \  / ,--'""`-. 
:::   :  \_ _/ ,-'   `-._ 
:::   \  `--'/    ) 
:::   `. \`._ ,'  ________,',' 
:::    .--`  ,' ,--` __\___,;' 
:::    \`.,-- ,' ,`_)--' /`.,' 
:::    \(; | |)  (`-/ 
:::     `--'| |)  |-/ 
:::     | | |  | | 
:::     | | |,.,-. | |_ 
:::     | `.//)---` ) 
:::     _|/ ,', ,-' 
:::     ,'|_( /-<._,' |--, 
:::     | `--'---.  \/ \ 
:::     |  /\ /\ \ 
:::    ,-^---._  | \/\ \ 
:::   ,-'  \----' \/ \--`. 
:::   /   \    \ \ 
::: 

for /f "delims=: tokens=*" %%A in ('findstr /b ::: "%~f0"') do @echo(%%A 

的图像可以在脚本中的任何位置放置。它不需要靠近FOR语句。我选择:::作为每个图像行的区分标签,因为:用于标准标签,并且::经常用作注释。

2014年10更新

有使用我REPL.BAT utility一个更简单的解决方案 - 在标准输入混合的JScript /批执行一个正则表达式搜索脚本/替换,并将结果输出到标准输出。可以替换以下行for语句上面:

call repl "^:::" "" a <"%~f0" 

REPL.BAT是纯脚本,将任何Windows机器上从XP向前运行。完整的文档嵌入在脚本中。此解决方案使用A选项仅打印已更改的行。

4

您需要转义特殊字符(例如|,用于管道重定向)以使其工作。

但是,当使用echo时,并非所有特殊的批处理字符都需要转义,就像解释为文本一样。那些你仍需要逃避,以及如何逃避他们,分别是:

% = %%

^ = ^^

& = ^&

< = ^<

> = ^>

| = ^|

而且,如果延迟扩展被启用:

! = ^^!

3
cat << "EOF" 
      _ _,---._ 
     ,-','  `-.___ 
     /-;'    `._ 
    /\/   ._ _,'o \ 
    (/\  _,--'\,','"`.) 
    |\  ,'o  \' //\ 
    |  \  / ,--'""`-. 
    :  \_ _/ ,-'   `-._ 
     \  `--'/    ) 
     `. \`._ ,'  ________,',' 
     .--`  ,' ,--` __\___,;' 
      \`.,-- ,' ,`_)--' /`.,' 
      \(; | |)  (`-/ 
      `--'| |)  |-/ 
       | | |  | | 
       | | |,.,-. | |_ 
       | `.//)---` ) 
       _|/ ,', ,-' 
      ,'|_( /-<._,' |--, 
      | `--'---.  \/ \ 
      |  /\ /\ \ 
      ,-^---._  | \/\ \ 
     ,-'  \----' \/ \--`. 
    /   \    \ \ 
EOF 
-1
echo this one works 
echo '    ***  *** 
echo    *  * *  * 
echo    * * * * 
echo     *** * **** 
echo     *  * 
echo     * 0 0 * 
echo     * ! * 
echo     *   * 
echo     * ~~~ * 
echo     *   * 
echo   ======   ====== 
echo   ======   ====== 
echo  ======      ====== 
echo  ======      ====== 
+0

这是OP指定的吗? – SteveFest

相关问题