Eigene Befehle im Windows Terminal?

2 Antworten

Ja, natürlich!

Die "Befehle" sind einfach nur Programme die als Dateien irgendwo auf der Festplatte liegen. Die werden dann gestartet wenn man den Dateinamen (ohne Endung) eingibt. Was man dahinter schreibt wird dem Programm dann als Parameter übergeben.

Neben Ausführbaren Dateien EXE oder früher oft COM kann man auch BAT Dateien schreiben.

BAT Dateien sind einfache Text Dateien die eine Liste von Dingen enthält die dann im terminal "reingetippt" werden. Man kann also eine Reihe von "Befehlen" selber tippen oder die in eine BAT Datei speichern und diese dann ausführen.

Bei DOS gab es die "AUTOEXEC.BAT", die wurde gestartet wenn DOS geladen war. Das hat dem User dann erspart alle Einstellungen nach dem Hochfahren immer wieder neu selber einzugeben.

Hier konnte man zum Beispiel "win" rein schreiben so dass nach dem Hochfahren direkt Windows gestartet wurde. Das passierte früher normalerweise nicht automatisch, Windows war ein Grafischer Aufsatz für DOS und kein eigenes Betriebssytem.

Gibt man was ein und drückt Enter, dann durchsucht Windows bestimmte Ordner nach diesem Dateinamen. Unter anderem z.B. System32. Man kann da auch eigene Ordner in die Suche einstellen wo man dann seine eigenen Programme drin aufhebt.

Woher ich das weiß:Berufserfahrung

Commodore64  29.03.2024, 01:13

Und hier nach ein bisschen googeln eine ausführliche Anleitung wie man die Umgebungsvariable wo das System die "befehle" sucht bearbeitet:

https://www.java.com/de/download/help/path_de.html

Da kannst Du dann den Ordner wo Du Deine eigenen programme drin hast mit einbinden.

Damit Du Dir das "Python main.py" sparen kannst, erstellst Du dann in diesem Fall eine Textdatei die main.BAT heißt. Und in der steht dann das "Python main.py".

Gibst Du also main ein, dann wird die main.BAT gestartet und die startet dann python mit der main.py als Parameter.

Aber pass auf, dass Du keine Namen von anderen existierenden Befehlen verwendest. Sonst löst Du dann diesen Befehl aus oder irgendwas das den Befehl braucht startet dann Dein Programm.

Du kannst das wirkungsvoll verhindern in dem Du da einen Zusatz dran machst wie z.B. "mymain"

0
Commodore64  29.03.2024, 01:15
@Commodore64

P.S.:

Deine Eigenen Ordner immer am Schluss der PATH Umgebungsvariable anbringen. Dann werden die Systemsachen nicht nur ein paar millisekunden schneller gefunden, also Dein Ordner nicht immer wieder durchsucht sondern das stellt auch sicher, dass gleichnamige Systemsachen immer noch aufgerufen werden können.

0
FriendlyBlood 
Beitragsersteller
 29.03.2024, 01:11

Wie kann ich dafür sorgen daß der Befehl nur einmal aufgeführt wird und wie kann ich 2 Befehle nach einander ausführen lassen?

0
Commodore64  29.03.2024, 01:16
@FriendlyBlood

Wenn Du was eingibst und Entre drückst, wird das nur ein mal ausgeführt.

Sachen nacheinander macht die Batch Datei, also die *.BAT die Du anlegst.

Jede Zeile wird behandelt als wenn Du die selber in das Terminal eingetippt hättest und Enter drückst.

0
Commodore64  29.03.2024, 01:20
@FriendlyBlood

Du kannst ja mal Spaßeshalber eine "Test.BAT" anlegen und da schreibst Du rein

echo Hallo
echo Welt

Tippst Du dann test in das Terminal und drückst Enter, schreibt der dann erst "Hallo" und dann als zweiter Befehl wird "Welt" geschrieben. Das echo dient dazu das was dahinter steht zu schreiben. Damit können BAT Dateien dann irgendwelche Informationen an den User der die aufgerufen hat melden.

0
FriendlyBlood 
Beitragsersteller
 29.03.2024, 01:37
@Commodore64

Wie kann ich im Terminal sagen das es ein anderen Ordner öffen soll?

0
Commodore64  29.03.2024, 01:41
@FriendlyBlood

Dazu habe ich Dir den Link geschickt:

https://www.java.com/de/download/help/path_de.html

Da steht drin wie Du z.B. unter Win10 diese Systemvariable anschaust und änderst.

Da trägst Du dann den Ordner (kompletter Pfad) ein wo Dein Zeug drin ist.

Den aber am Ende einfügen damit der nicht am Anfang durchsucht wird und ggf gleichnamige Systemsachen dann immer noch funktionieren und nicht Deine Sachen aufgerufen werden.

0
FriendlyBlood 
Beitragsersteller
 29.03.2024, 01:46
@Commodore64

Da gibt es aber folgendes Problem

Ich habe 2 Bots die beiden mit "Python (Dateiname).py" gestartet werden aber die Bots sind in unterschiedlichen Ordnern weil beide viele Zusatz Dateien habe und nicht nur die Main Datei dementsprechend kann ich die nicht in ein Ordner packen und kann ja auch nur ein PATH festlegen, deswegen muss ich dem Terminal irgendwie sagen das es in Ordner xy gehen muss um die Datei zu starten

Verstehst du was ich meine?

0
Commodore64  29.03.2024, 01:52
@FriendlyBlood

Ja, das kann die BAT Datei machen. Da schreibst Du dann die Befehlsfolge rein die Du selber bei CMD eintippen würdest um das per Hand zu starten.

Wie gesagt, eine BAT Datei ist dann genau so wie selber tippen. Jede Zeile ist wie selber getippt + Enter, nur "sofort" und ohne selber tippseln.

0
FriendlyBlood 
Beitragsersteller
 29.03.2024, 01:55
@Commodore64

und was muss ich eingeben um z.b Ordner D:\PythonBots\DCB zu öffnen um da dann "python main.py" ausführen zu lassen

0
FriendlyBlood 
Beitragsersteller
 29.03.2024, 02:03
@Commodore64

Ich weiß ja aber nicht wie das geht, normaler weiße klicke ich bei meinem Code Editor auf Play und dann startet es die main.py aber dafür muss ich immer denn Tab mit der main.py öffnen und das ist nervig wenn man um die 40 bis 50 Dateien in dem Ordner hat

0
Commodore64  29.03.2024, 02:05
@FriendlyBlood

Dann lerne die terminalbefehle

Wenn Du in C:\Bla\blub\dasda.exe starten willst, dann schreibst Du das auch genau so ins Terminal rein.

0
FriendlyBlood 
Beitragsersteller
 29.03.2024, 02:09
@Commodore64

Wie mache ich das mit dem Benutzer Name?
Weil ich habe ein Leerzeichen im Windows Benutzer Name und da denkt es das alles vor dem Leerzeichen ein Befehl ist

0

Die Befehle die dir in der konsole zur verfügung stehen sind einfach nur programme die in %systemroot%/System32/ liegen. Dort kannst du natürlich auch eigene programme und scripte Speichern. Der Befehl zum ausführen ist dann einfach nur der Dateiname.