CMD Echo mehrere Zeilen?
Guten Abend Community,
ich möchte aktuell eine Batch machen mit diesem Inhalt:
@echo off
start cmd.exe /k "echo
Zeile 1
Zeile 2
Zeile 3
Zeile 4
Zeile 5
Zeile 6
Zeile 7
pause
Ganz einfach gesagt ich möchte das sich CMD öffnet und den Befehl echo ausführt, nur dass Problem ist dass ich Zeile 1 - 7 als Text benutzen möchte und ich nicht weiß mit welcher Variable ich ihm sage, dass er alle Zeilen als echo ausführen soll.
Hier der Screenshot von meiner Batch: https://prnt.sc/tevpko.
Ich hoffe ihr habt meine Frage verstanden bei Fragen einfach gerne stellen.
MfG Ree
3 Antworten
![](https://images.gutefrage.net/media/user/MatthiasHerz/1568025620185_nmmslarge__1642_0_857_857_4abb6a047c43b99276216ac3aee7622a.jpg?v=1568025620000)
Es werden alle Zeilen als
echo
ausgeführt bis zum Befehl
echo off
.
![](https://images.gutefrage.net/media/user/Ree18/1605094606375_nmmslarge__113_0_558_558_183f39f379f148a3061d7f8d2805e2ed.jpg?v=1605094606000)
Besser gesagt, was muss ich für eine Variable setzen nach dem "/k" ?
start cmd.exe /k "echo [Hier muss aber noch eine Variable sein, die angibt, dass der Befehl in der nächsten Zeile weitergeht]
![](https://images.gutefrage.net/media/user/Ree18/1605094606375_nmmslarge__113_0_558_558_183f39f379f148a3061d7f8d2805e2ed.jpg?v=1605094606000)
Danke für die Antwort.
Jedoch verstehe ich jetzt nicht was ich bearbeiten soll... Ich möchte ja durch: start cmd.exe /k bewirken, dass CMD sich öffnet und durch das /k ein Befehl ausgeführt wird. Nur führt er den Befehl aus der Zeile aus und nicht aus allen.
MfG
![](https://images.gutefrage.net/media/user/geri3d/1445246679564_nmmslarge__92_208_1652_1652_70c8a924950b847ddd012ca7a0648a93.jpg?v=1445246680000)
Du musst jede Zeile einzeln mit echo ausgeben.
![](https://images.gutefrage.net/media/user/Ree18/1605094606375_nmmslarge__113_0_558_558_183f39f379f148a3061d7f8d2805e2ed.jpg?v=1605094606000)
Erstmals danke für deine Antwort,
jedoch denke ich, dass du nicht richtig gelesen hast. Es fängt mit start cmd.exe /k an. Dies startet CMD und /k bewirkt ja, dass ein Befehl ausgeführt wird. Nur der Echo befehl geht über mehrere Zeilen und die Frage war eben wie er alle Zeilen ausgibt.
![](https://images.gutefrage.net/media/user/Erzesel/1497339133085_nmmslarge__0_524_1080_1080_4b38ff31970de3b94deb6a27ca8a8f01.jpg?v=1497339133000)
Du kannst ohne gewaltige Trickserei keine Zeilenvorschübe in einer Kommandozeile unterbringen.
Für kleinere Texte genügt es mehrere Echos per & zu trennen:
@echo off
rem Umlaute und Unicode anzeigen...
chcp 65001 >nul
rem mehrere Befehle in einer Zeile werden durch ein Ampersand & getrennt...
rem folglich kann man mehrere echos innerhalb einer Zeile angeben... (insgesamt jedoch nicht mehr als 8191 Zeichen)
start "" cmd /k "echo Dies ist ein mehrzeiliger Text,&echo der in einer neuen Instanz der&echo Console angezeigt werden soll...&echo ..Zeile4&echo ..Zeile5&echo ..Zeile6&echo ..usw..."
pause
...die 8191-Zeichen-Beschränkung kann man umgehen, indem man den Text in eine (temporäre) Datei schreibt und diese am begin der neuen Instanz anzeigen lässt:
@echo off
chcp 65001 >nul
rem text in hilfsdatei ausgeben (bevorzugt im Temp-ordner)
@(
echo Dies ist ein mehrzeiliger Text,
echo der in einer neuen Instanz der
echo Console angeteigt werden soll...
echo ..Zeile4
echo ..Zeile5
echo ..Zeile6
echo ..usw...
)>"%temp%\temporaerer.txt"
rem Dateiinhalt mit Type anzeigen...
rem achtung! die % werden durch verdoppeln maskiert, so dass sie erst ni der neuen Instanz ausgewertet werden.
rem (diess spart Platz --in einer Kommandozeile können max 8191 Zeichen übergeben werden--)
start "" cmd /k "type "%%temp%%\temporaerer.txt""
pause
...viele Wege führen nach Rom...
@echo off
chcp 65001 >nul
rem missbrauchen wir doch einfach Powershell's Write-Host für die Ausgabe...
rem Powershell benutzt einen Backtick ` zum maskieren von Formatierungszechen https://ss64.com/ps/syntax-esc.html
rem entsprechend trennt man Zeilen durch `n .
start "" cmd /k "powershell -c Write-Host Dies ist ein mehrzeiliger Text,`nder in einer neuen Instanz der`nConsole angezeigt werden soll...`necho ..usw..."
...letzteres kann man sogar mit Farbe versehen...( https://ss64.com/ps/write-host.html)
rem Write-Host erlaubt eine angabe von Ausgabefarben...
start "" cmd /k "powershell -c Write-Host -f 12 -b 1 Dies ist ein mehrzeiliger Text,`nder in einer neuen Instanz der`nConsole angezeigt werden soll...`necho ..usw..."
...wenn Du richtig Gasgeben möchtest, kannst Du das ganze auch noch mit einem selbst gestalteten Prompt versehen .https://www.gutefrage.net/frage/cmd-mit-batch-datei-oeffnen#answer-347428519
...Kombinieren wir mal mit dem Oben gezeigten:
@echo off
chcp 65001 >nul
rem text in hilfsdatei ausgeben (bevorzugt im Temp-ordner)
@(
echo Dies ist ein mehrzeiliger Text,
echo der in einer neuen Instanz der
echo Console angeteigt werden soll...
echo ..Zeile4
echo ..Zeile5
echo ..Zeile6
echo ..usw...
)>"%temp%\tempo raerer.txt"
start "" cmd /k "prompt $H ???$_ _ (o.O) _$_░░░░░░░░░░░ Häää?&color 6f&title Guckst Du aus der Wäsche - Console Multilineprompt&type "%%temp%%\tempo raerer.txt""
rem für Powerschell hier Kommata mit Backtick maskieren...
start "" cmd /k "prompt $h /\_/\ ...ähm?$_$c o.o $f miau?$_ $g ^^ $l Was soll Kitty machen?:&title Hello Kitty Consmiaulääää :)&color df&powershell -c Write-Host -f 13 -b 15 Miau?`n...ich bin so glücklich`,`ndass Du mich gestartet hast.`nschnurr... "
habe Spaß damit.
![](https://images.gutefrage.net/media/user/Erzesel/1497339133085_nmmslarge__0_524_1080_1080_4b38ff31970de3b94deb6a27ca8a8f01.jpg?v=1497339133000)
PS : biem Gassigehen ist mir eingefallen, das man natürlich auch komplexe Sachen in einer Selbststarter-Batch unterbringen kann...:
@echo off
chcp 65001 >nul
if "%~1"=="-second" goto :secondWindow
if "%~1"=="-3" goto :thirtWindow
rem hier alles was in der ersten Instanz getan werden soll.
rem im einfachsten Fall nur die neue Instanz starten
rem ein selbstaufruf ohne cmd /c ist implizit cmd /k!
start "" "%~f0" -second
rem 3. instanz im fenster der ersten Instanz ausführen
start /b "" "%~f0" -3
rem 1. Intanz beenden
exit /b
:secondWindow
rem hier alles was beim Start der neuen Instanz erfolgen soll.
echo machwas
echo blubbb
for /l %%a in (9,-1,1) do (
echo ... %%a Miniippi...
)
exit /b
:thirtWindow
prompt ¯\_(o.O)_/¯ :
color 6
title Guckst Du
for %%a in ("▀▀█▀▀ █▀▀ █▀▀ ▀▀█▀▀","░░█░░ █▀▀ ▀▀█ ░░█░░","░░▀░░ ▀▀▀ ▀▀▀ ░░▀░░ ") do echo %%~a
rem was sonst noch getan werden soll....