CMD Echo mehrere Zeilen?

3 Antworten

Es werden alle Zeilen als

echo

ausgeführt bis zum Befehl

echo off

.

Ree18 
Fragesteller
 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

0
Ree18 
Fragesteller
 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]

0

Du musst jede Zeile einzeln mit echo ausgeben.

Woher ich das weiß:eigene Erfahrung
Ree18 
Fragesteller
 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.

0

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


0