Zweck:Ändern der Befehlszeilenaufforderung

 

Format:PROMPT [text]

 

text Text, der als neue Eingabeaufforderung für die Befehlszeile verwendet werden soll.

 

Siehe auch: ESET und SET (der  Befehl PROMPT ist syntaktisch äquivalent zu SET PROMPT).

 

Verwendung:

 

Sie können die Befehlszeilen-Eingabeaufforderung jederzeit ändern und anpassen. Die Eingabeaufforderung kann normalen Text und Systeminformationen wie das aktuelle Laufwerk und Verzeichnis, die Uhrzeit und das Datum sowie den verfügbaren Speicherplatz enthalten. Sie können einen informellen "Hallo, Bob!"-Prompt oder einen komplexen Prompt voller beeindruckender Informationen erstellen.

 

Der Prompttext kann spezielle Befehle in der Form $? enthalten, wobei ? eines der unten aufgeführten Zeichen ist. Wenn nicht anders angegeben, sind diese Metazeichen unabhängig von der Groß- und Kleinschreibung.

 

aDas kaufmännische Und-Zeichen [&].
bDas Zeichen für den senkrechten Strich [|].
cDie offene Klammer [(].
dDas aktuelle Datum, im Format: Fri 01-01-20 (der Monat, der Tag und das Jahr werden entsprechend den aktuellen Ländereinstellungen formatiert)
DAktuelles Datum, im Format: Fri Aug 19, 2018
eDas  ASCII-Zeichen ESC (dezimal 27), erforderlich für  ANSI-Befehle.
fDie schließende Klammer [)].
gDas  Zeichen >.
hDie Rücktaste über dem vorherigen Zeichen.
jAktuelles Datum im ISO 8601-Format (jjjj-mm-tt).
lDas  Zeichen <.
mUhrzeit in Stunden und Minuten im 24-Stunden-Format.
MUhrzeit in Stunden und Minuten unter Verwendung des Standard-Länderformats.
nAktueller Laufwerksbuchstabe.
pAktuelles Laufwerk und Verzeichnis (Kleinbuchstaben).
PAktuelles Laufwerk und Verzeichnis (Großbuchstaben bei Laufwerken, die keine langen Dateinamen unterstützen; bei LFN-Laufwerken werden die Verzeichnisnamen in gemischter Schreibweise angezeigt, wie sie auf der Festplatte gespeichert sind).
qDas  Zeichen=.
rDer numerische Exit-Code des letzten externen Kommandos.
sDas Leerzeichen.
tAktuelle 24-Stunden-Zeit, im Format hh:mm:ss.
TAktuelle 12-Stunden-Zeit, im Formathh:mm:ss[a|p).
uDer aktuelle Benutzer .
vWindows-Versionsnummer, im Format 6.0.
wAktuelles Verzeichnis, in einem verkürzten Format. Wenn das aktuelle Verzeichnis das Stammverzeichnis oder ein Unterverzeichnis der ersten Ebene ist, wird es unverändert angezeigt. Wenn es sich um ein Unterverzeichnis der zweiten Ebene oder tiefer handelt, wird der Pfad gekürzt (z. B. "c:\...\config"). (Dies funktioniert nicht mit UNC-Namen.) $W und $w verhalten sich bei der Anzeige von Groß-/Kleinschreibung wie $P und $p.
xd:Aktuelles Verzeichnis auf Laufwerk d: in Kleinbuchstaben, einschließlich des Laufwerksbuchstabens (verwendet bei LFN-Laufwerken die tatsächliche Groß-/Kleinschreibung des Verzeichnisnamens, wie sie auf der Platte gespeichert ist).
Xd: Aktuelles Verzeichnis auf Laufwerkd: in Großbuchstaben, einschließlich des Laufwerksbuchstabens.
zAktuelle Shell-Schachtelungsebene.
+Anzeige eines +-Zeichens für jedes Verzeichnis auf dem  PUSHD-Verzeichnisstapel.
$Das  Zeichen$.
$:Anzeige des Prompt-Timers (im Formathh:mm:ss ).
CR/LF (Sprung zum Anfang einer neuen Zeile).
~(Ersatz für P). Wenn die Umgebungsvariable HOME (oder HOMEDRIVE + HOMEPATH) existiert, vergleicht TCC die Variable mit dem Anfang des aktuellen Pfades. Wenn sie übereinstimmen, ersetzt TCC den  Variablenteil durch~. (Wenn sie nicht übereinstimmen, wird ~ wie ein P behandelt.)
=Die verstrichene Zeit (in Millisekunden) seit dem Start des vorherigen Befehls.
"..."Anzeige des aktuellen Datums / der aktuellen Uhrzeit in einem eigenen Format. Die in Anführungszeichen eingeschlossenen Formatierungszeichen sind die gleichen, die auch von der  Funktion@DATEFMTverwendet werden .
/Rechnername
@Computername
#Benutzername
?Letzte Fehlerstufe für einen internen Befehl

 

Zum Beispiel, um die Eingabeaufforderung auf das aktuelle Datum und die Uhrzeit zu setzen, mit einem ">" am Ende:

 

[c:\] prompt $d $t $g

Mon Feb 24, 2020 10:29:19 >

 

Um das Metazeichen ~ (home) zu verwenden:

 

[c:\] set home=c:\users\myself

[c:\] set prompt=[$~]

[c:\] cd \users\myself\downloads

[~\downloads]

 

Die TCC Prompt kann in TCSTART oder in jeder Batch-Datei gesetzt werden, die beim TCC startet.

 

Wenn Sie PROMPT ohne Parameter eingeben, wird die Eingabeaufforderung auf ihren Standardwert zurückgesetzt.

 

Sie können wörtlichen Text und Sonderzeichen sowie den Wert einer  Umgebungsvariablen, einer internen Variablen oder einer Variablenfunktion in eine Eingabeaufforderungaufnehmen . Wenn Sie z. B. die Größe des größten freien Speicherblocks in die Eingabeaufforderung aufnehmen wollen, sowie das aktuelle Laufwerk und Verzeichnis, können Sie diesen Befehl verwenden:

 

[c:\] prompt [(%%@dosmem[K]K) $p]

[(31043K) c:\data]

 

Beachten Sie, dass die Funktion @DOSMEM mit zwei führenden Prozentzeichen [%]angezeigt wird. Wenn Sie nur ein Prozentzeichen verwenden würden, würde die Funktion @DOSMEM bei der Ausführung des PROMPT-Befehls auf einmal expandiert werden, anstatt jedes Mal, wenn die Eingabeaufforderung angezeigt wird. Dadurch würde sich die Speichermenge nie gegenüber dem Wert ändern, den sie bei der Eingabe des PROMPT-Befehls hatte. Sie können auch Anführungszeichen verwenden , um die Erweiterung der Variablenfunktion zu verzögern, bis die Eingabeaufforderung angezeigt wird:

 

prompt `[(%@dosmem[K]K) $p]`

 

Sie können diese Funktion zusammen mit der  Variablenfunktion@EXECverwenden , um eine komplexe Eingabeaufforderung zu erstellen, die nicht nur Informationen anzeigt, sondern auch Befehle ausführt. Zum Beispiel, um einen Alias auszuführen, der den Batteriestatus jedes Mal überprüft, wenn die Eingabeaufforderung angezeigt wird (geben Sie den Alias in einer Zeile ein):

 

alias cbatt `if %_apmlife lt 30 beep 440 4 880 4 440 4 880 4`

prompt `%@exec[@cbatt]$p$g`

 

Sie können  ANSI-Escape-Sequenzen in den PROMPT einfügen , indem Sie die integrierte ANSI X3.64-Unterstützung in TCC. In diesem Beispiel werden ANSI X3.64-Sequenzen verwendet, um einen Prompt zu setzen, der die Shell-Ebene, das Datum, die Uhrzeit und den Pfad in der oberen Zeile des Bildschirms farbig anzeigt (geben Sie den Befehl in einer Zeile ein):

 

prompt $e[s$e[1;1f$e[41;1;37m$e[K[$z] $d

Time: $t$h$h$h Path: $p$e[u$e[0;32m$n$g