CMD mit Batch Datei öffnen?
Wie kann ich CMD mit einer Batch Datei öffnen und gleichzeitig beim Öffnen die Farbe , den Titel und @echo off einstellen. Ich habe immer das Problem, dass sich CMD dann xMillionen mal öffnet.
2 Antworten
🥱...
start "" cmd /k "echo off & color 1f & title Rumpelheinzchens Prinzessin &echo Ich bin die ganz normal Console, gib Deine Kommandos ein:"
Öffnet ein blaues ConlsolenFenster mit weißer Schrift und dem Titel Rumpelheinzchens Prinzessin.
Echo off unterdrückt in diesem Fall natürlich nicht die Eingabe sondern lediglich den Prompt.
Alternativ kanst Du matürlich auch den Prompt nach Deinen Bedürfnissen gestalten:
start "" cmd /k "prompt $D $T Hallo Du da... & color 1f & title alternativer Prompt
...oder "Matrix"- mäßig...:
start "" cmd /k "prompt $g & color 0a & title Matrixerei "
..."Matrix"- mäßig... mit einer negativfarbigen Begrüßung:
chcp 65001>nul & start "" cmd /k "prompt $g&color 0a&title Matrixerei mit andersfarbiger Begrüßung&powershell -c write-host -f 0 -b 2 Willkommen in der Matrix "
- cmd /k hält die Console nach Beendigung eine Batch offen.
- die gesamte beim Start auszuführende Batch wird in "Gänsefüßchen" als "Einzeiler" an die neugestartete Console übergeben!
- In Cmd/Batch werden mehrere Befehle durch Ampersand& voneinander getrennt.
- Egal bei welchem Beispiel, wenn sich in Umlaute oder ander Europäische Zeichen im Text befinden , muss die Zeichencodierung vor dem Aufruf mit chcp 65001 auf UTF8 umgeschaltet werden!
- Um andersfarbigen Text in die Console zu "mogeln" Missbrauche ich einfach und fies Powershells Inline-Script-funktion (-c) mit write-host.
noch ein Paar Beispiele:
chcp 65001>nul
start "" cmd /k "prompt ¯\_(o.O)_/¯ &color 6f&title Guckst Du aus der Wäsche - Console&powershell -c write-host -f 0 -b 14 Was is....? "
rem Mehrzeiliger Prompt? ...wer kann der kann...
start "" cmd /k "prompt $h /\_/\ ...ähm?$_$c o.o $f miau?$_ $g ^^ $l Was soll Kitty machen?:&title Hello Kitty Consmiaulääää :)&color df "
Das @echo off ist nur einmal am Anfang der Batch nötig... (schaltet die Anzeige der Befehlszeilen und des Prompt aus)
korrektur:
....so gehts nur bei direkter Consoleingabe:
chcp 65001>nul & start "" cmd /k "prompt $g&color 0a&title Matrixerei mit andersfarbiger Begrüßung&powershell -c write-host -f 0 -b 2 Willkommen in der Matrix "
In einer Batch muss das chcp... in einer eigenen Zeile stehen:
chcp 65001>nul
start "" cmd /k "prompt $g&color 0a&title Matrixerei mit andersfarbiger Begrüßung&powershell -c write-host -f 0 -b 2 Willkommen in der Matrix "
...ich mache das 35 Jahre und erlebe noch immer Überraschungen...
Erklärung für mitlesende Batchprogrammierer:
In der Console funktioniert es in einer Zeile, weil der Console die Codierung der Eingabe schlicht egal ist.
In der Batch muss chcp erst Umschalten hat jedoch keine Wirkung auf die Befehle in der gleichen Zeile oder im gleichen KlammerBlock... (ähnlich DelayedExpansion)
Das funktioniert alles sehr gut, danke, aber das Problem ist, dass wenn ich die Datei dann öffne, dass sich CMD dann automatisch x-mal öffnet. Ich muss dann immer Alt+F4 gedrückt halten, um das zu schließen.
vielleicht solltest Du mal Deine Batch posten. Ich nehme an Du hast irgendwas kopiert ohne zu wissen was Du da tust. ich vermute eine Forkbomb mit einer GotoDchleife?:
!!!nicht ausführen, Forkbomb!!!chcp 65001>nul
:label
start "" cmd /k "prompt ¯\_(o.O)_/¯ &color 6f&title Guckst Du aus der Wäsche - Console&powershell -c write-host -f 0 -b 14 Was is....? "
goto :label
!!!nicht ausführen, Forkbomb!!!
...start.... wird ausgeführt un das goto springt wieder an den Anfang, start wird ausgeführt... und so weiter bis Du in Fenstern ersäufst....
sowas sollte man nicht tun....🤮🤯😬
Ich habe einfach deine Batch kopiert, aber das ist generell so, dass wenn ich start cmd eingebe, dass CMD dann unendlich oft geöffnet wird
So habe ich es als erstes probiert ohne Hilfe:
@echo off
pause
start cmd
color a
title console
@echo off
Du darfst die Batch nicht cmd.cnd oder cmd.bat nennen!
Ansonsten ändere die Zeile wiefolgt:
start "" cmd.exe /k "...wie oben..."
Wenn Du die Batch cmd... nennst wird diese sich immer wieder selbst aufrufen.
Um ein Consolenkommando ohne Endung aufzurufen durchsucht der Kommandointerpreter zuerst das aktuelle Verzeichnis nach einer startbaren Datei (.exe,.cmd,. Bat,.vbs,.js,.lnk usw.). ...danach alle in der Path-Variable gespeicherten Ordner und startet den erstbesten Treffer!
Man sollte nie einer Batch den Namen eines anderen Programms geben! Lass Dir etwas Kreatives einfallen, wie ___cmd.cmd oder My Cmd.cmd oder was auch immer, sonst ruft sich die Batch immer selbst auf🥴💩🤮
Die Batchdatei wird doch in CMD geöffnet, warum willst du den noch ein Fenster haben?
Ein Computer kann grundsätzlich nichts gleichzeitig machen, aber du kannst in deine Batchdatei die jeweiligen Befehle schreiben und dann wäre es quasi "gleichzeitig".
Das wäre dann vielleicht:
@echo off
color -a
titel "Ich glaube der Befehl hies Titel, oder doch nicht?"
echo ab hier beginnt der Rest des Programms:
lange her, seit dem ich dass letzte mal in der Sprache programmiert habe
hoffe dass es trotzdem hilft
LG
Die Batchdatei wird doch in CMD geöffnet, warum willst du den noch ein Fenster haben?
...ähm🤔? Wenn man eine Eingabe-Console mit einem individuellen Prompt,Farbe,Titel usw. starten möchte und nicht jedes Mal von Hand die Gestaltung eingeben möchte?
runHelloKittyConsole.cmd
start "" cmd /k "prompt $h /\_/\ ...ähm?$_$c o.o $f miau?$_ $g ^^ $l Was soll Kitty machen?:&title Hello Kitty Consmiaulääää :)&color df "
natürlich könnte man die Kommandozeile sogar zum Start von Batches in der Registry verankern.
Man kann auch eine Verknüpfung mit folgender Ziel -Zeile anlegen :
C:\Windows\System32\cmd.exe /k "prompt $h /\_/\ ...ähm?$_$c o.o $f miau?$_ $g ^^ $l Was soll Kitty machen?:&title Hello Kitty Consmiaulääää :)&color df "
Eine Batch bietet jedoch weit mehr Möglichkeiten.
Um den Start eines neuen Fensters kommt man jedoch nicht vorbei, da eine Batch immer automatisch im selbstschließenden Modus (cmd /c) gestartet wird!
Es gibt immer Dinge, welche manche Leute anders mögen..., davon leben Programmierer....
...Ich erlebe auch hin und wieder Überaschungen...wie eben: https://www.gutefrage.net/frage/cmd-mit-batch-datei-oeffnen#answer-347428519 siehe Korrektur- Kommentar
Ein Computer kann grundsätzlich nichts gleichzeitig machen
Doch natürlich, mit mehreren Prozessoren geht das z.B. ohne Probleme.
Oder wenn du was auf deiner GraKa laufen lässt, läuft das auch parallel.
@Erzesel danke danke danke habs jetzt verstanden
so hab ichs jetzt gemacht