2013-10-28 13 views
11

Quindi .. Questo è (per me comunque) la caratteristica più importante di questo programma. Ho bisogno che funzioni. Si prega di non ridere .. (va bene si può ridere), ma quando i miei errori di programma, lo voglio per visualizzare questo:Come si richiama l'arte ASCII che contiene caratteri speciali in un file batch?

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

Facendo eco a ciascuna linea non funziona ...

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   /   \    \ \ 

Suppongo che questo sia dovuto ai simboli nel testo. Qualche modo per aggiustarlo? O devo rinunciare alla schermata "DOH"?

risposta

10

Memorizza l'immagine in un file (doh.txt). Quindi type doh.txt nel file batch.

+0

Grazie per la rapida risposta. Preferirei davvero che caricasse l'ASCII nel prompt di cmd, perché invierà all'utente l'input dopo l'errore. – user2863294

+0

@ user2863294 - Il tuo commento non ha senso per me. Lo script batch può semplicemente richiedere all'utente un errore dopo aver stampato il contenuto del file sullo schermo utilizzando TYPE. – dbenham

+0

OH! Ero su un tablet e non avevo capito che "type" faceva parte del comando! Brillante! – 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

Includere il seguente nello script:

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

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

L'immagine potrebbe essere posizionato in qualsiasi punto all'interno dello script. Non è necessario essere vicino alla dichiarazione FOR. Ho scelto ::: come etichetta distintiva per ogni riga di immagine perché : viene utilizzato per le etichette normali e :: viene spesso utilizzato come commento.

2014-10-22 Aggiornamento

C'è una soluzione ancora più semplice usando il mio REPL.BAT utility - uno script/batch ibrido JScript che esegue una ricerca regex/sostituzione su stdin e scrive il risultato su stdout. Basta sostituire la seguente riga per l'istruzione FOR sopra:

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

REPL.BAT è pura script che verrà eseguito su qualsiasi macchina Windows da XP in poi. La documentazione completa è incorporata nello script. Questa soluzione utilizza l'opzione A per stampare solo le righe che sono state alterate.

4

È necessario utilizzare caratteri speciali (ad esempio |, utilizzati per il reindirizzamento delle pipe) affinché funzioni.

Tuttavia, quando si utilizza echo, non tutti i caratteri di batch speciali devono essere sfuggiti, alcuni interpretati come testo.Quelli che hanno ancora bisogno di fuggire, e come sfuggire loro, sono:

% = %%

^ = ^^

& = ^&

< = ^<

> = ^>

| = ^|

E, se l'espansione ritardata è attivata:

! = ^^!

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

E 'questo che OP ha specificato? – SteveFest

Problemi correlati