2013-10-28 54 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

相關問題