2013-10-28 7 views
11

Also .. Das ist (für mich sowieso) das wichtigste Merkmal dieses Programms. Ich brauche das, um zu arbeiten. Bitte nicht lachen .. (okay man kann lachen), aber wenn mein Programm Fehler, ich will es dies anzuzeigen:Wie kann ich ASCII-Grafiken, die Sonderzeichen enthalten, in einer Stapeldatei wiedergeben?

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

jede Zeile Echoing funktioniert nicht ...

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

Ich nehme an, das liegt an den Symbolen im Text. Irgendeine Möglichkeit, es zu beheben? Oder muss ich auf dem "DOH" -Bildschirm aufgeben?

Antwort

10

Bild in einer Datei speichern (doh.txt). Dann type doh.txt in der Batch-Datei.

+0

Danke für die schnelle Antwort. Ich würde es wirklich bevorzugen, wenn es das ASCII in der cmd Eingabeaufforderung jedoch lädt, weil es den Benutzer für Eingabe nach dem Fehler auffordert. – user2863294

+0

@ user2863294 - Ihr Kommentar macht keinen Sinn für mich. Ihr Stapelscript kann den Benutzer einfach nach einem Fehler fragen, nachdem der Dateiinhalt mit TYPE auf den Bildschirm gedruckt wurde. – dbenham

+0

OH! Ich war auf einem Tablet und ich wusste nicht, "Typ" war Teil des Befehls! Brillant! – 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

Fügen Sie folgendes in Ihrem Skript:

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

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

Das Bild innerhalb des Skripts platziert überall werden konnte. Es muss nicht in der Nähe der FOR-Anweisung sein. Ich wählte ::: als ein unterscheidendes Etikett für jede Bildzeile, weil : für normale Etiketten verwendet wird, und :: wird häufig als Kommentar verwendet.

2014-10-22 aktualisieren

Es gibt eine noch einfachere Lösung meine REPL.BAT utility mit - ein Hybrid-JScript/Batch-Skript, das eine Regex Suchen/Ersetzen auf stdin führt und schreibt das Ergebnis auf stdout. Ersetzen Sie einfach die folgende Zeile für die FOR-Anweisung oben:

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

REPL.BAT ist reines Skript, das weiter auf jedem Windows-Rechner von XP laufen wird. Die vollständige Dokumentation ist in das Skript eingebettet. Diese Lösung verwendet die Option A, um nur geänderte Zeilen zu drucken.

4

Sie müssen Sonderzeichen (wie |, die für die Umleitung von Leitungen verwendet werden) umgehen, damit es funktioniert.

Bei Verwendung von echo müssen jedoch nicht alle speziellen Stapelzeichen maskiert werden, da einige als Text interpretiert werden.Die, die Sie noch entkommen müssen, und wie sie entkommen, sind:

% = %%

^ = ^^

& = ^&

< = ^<

> = ^>

| = ^|

Und wenn verzögerte Erweiterung aktiviert ist:

! = ^^!

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

Ist das was OP angegeben? – SteveFest

Verwandte Themen