CMD Echo mehrere Zeilen?

3 Antworten

Es werden alle Zeilen als

echo

ausgeführt bis zum Befehl

echo off

.


Ree18 
Beitragsersteller
 09.07.2020, 19:47

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]

Ree18 
Beitragsersteller
 09.07.2020, 19:43

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

Du musst jede Zeile einzeln mit echo ausgeben.

Woher ich das weiß:eigene Erfahrung

Ree18 
Beitragsersteller
 09.07.2020, 19:42

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.

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.

Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren

Erzesel  10.07.2020, 10:59

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....