So fügen Sie das aktuelle Datum und die aktuelle Uhrzeit zur Eingabeaufforderung clink / cmder hinzu

5926
Zsolt Botykai

Ich bin ein ziemlich glücklicher Benutzer von clink über das großartige cmder- Paket. Das einzige, was ich vermisse, ist eine einfache Möglichkeit, den Befehl promt so einzustellen, dass das aktuelle Datum / die aktuelle Uhrzeit (und der letzte Beendigungscode, die Verlaufsnummer, wie in bash... usw.) angezeigt werden .

Könnte mich jemand auf die richtige Richtung weisen, wie das geht?

9
Kannst du einfach das Windows `date / t` verwenden? Außerdem speichert Windows den letzten Exit-Code in "% errorlevel%", während sh "$?" Verwendet. Probieren Sie die aus. Bob vor 10 Jahren 0
Aber wie kann diese Ausgabe in die Eingabeaufforderung integriert werden? Ich möchte nicht jedes Mal `date / t` ausführen, bevor ich einen lang andauernden Befehl ausführt. Zsolt Botykai vor 10 Jahren 0
Oh. Gehen Sie zu "Prompt /?". Dort gibt es eine Datums- und Uhrzeitoption. Das ist wieder eine Standard-Windows-Eingabeaufforderung. Ich habe keine Ahnung, was Clink oder Ccmder tun sollen. Bob vor 10 Jahren 0

3 Antworten auf die Frage

9
Gruber

Die Antwort von Maximus ist für cmder 1.3+ nicht mehr gültig

Sie müssen eine .luaDatei (z. B.my_prompt.lua ) in Ihrem cmder- config Ordner mit Ihrer benutzerdefinierten Definition (Quelle) erstellen .

Unter meiner Anpassung:

function custom_prompt() cwd = clink.get_cwd() prompt = "\x1b[1;32;40m \n\x1b[1;30;40m\n \x1b[0m" new_value = string.gsub(prompt, "", cwd) add_time = string.gsub(new_value, "", os.date("%x - %X")) clink.prompt.value = string.gsub(add_time, "", "λ") end  clink.prompt.register_filter(custom_prompt, 1) 

Und dies ist die resultierende Aufforderung

C:\ 03/25/17 - 20:56:14 λ 

Weitere Anpassungsoptionen für die Zeitausgabe finden Sie im Lua-Handbuch


Update für gemeldeten Fehler

function time_prompt() os.setlocale ("", "time") local cwd = clink.get_cwd() local prompt = "\x1b[1;32m \n\x1b[30m\n \x1b[0m" local new_value = string.gsub(prompt, "", cwd) local add_time = string.gsub(new_value, "", os.date("%x - %X")) clink.prompt.value = string.gsub(add_time, "", "λ") end 
Maximus Antwort ist richtig, aber das ist die beste Antwort! AuthorProxy vor 7 Jahren 0
`D: \ Tools \ cmder \ config \ my_prompt.lua: 1: unerwartetes Symbol in der Nähe von char (255)` und die Eingabeaufforderung sieht folgendermaßen aus: `1: 26.51)" ← \\ ` Scott Beeson vor 6 Jahren 0
mmm Ich weiß nicht, was das ist, aber wenn ich meine Lua-Datei noch einmal überprüfe, ist es nicht genau so wie der alte Code, den ich gepostet habe. Gruber vor 6 Jahren 0
8
Maximus

Probieren Sie diese Einstellungen für die Eingabeaufforderung aus (nur Beispiel: Sie zeigen, wie Sie eine Konsolenanwendung innerhalb von "Eingabeaufforderung" aufrufen können). Hinweis! Es funktioniert nur in ConEmu.

prompt $p$s$e]9;7;"cmd /c echo (%DATE% %TIME%)"$e\$g 

Aber, wie Bob sagte, gibt es einen einfacheren Weg:

prompt $p$s$d$s$t$s$g 

Und für cmderSie sollten Sie das so bearbeiten, init.batdass die Aufforderungseinstellungen definiert werden.

Für cmder wird empfohlen, Eingabeaufforderungseinstellungen zu bearbeiten:% CMDER_ROOT% \ config \ user-startup.cmd` und nicht `init.bat`. wegry vor 8 Jahren 0
Bei win7 mit Cmder war das Hinzufügen von $ t der Trick für mich: @prompt $ E [1; 32; 40m $ P $ S $ t $ S $ _ $ E [1; 30; 40m $ S $ E [0m] Benj vor 8 Jahren 0
@wegry Diese `% CMDER_ROOT% \ config \ user-startup.cmd` -Datei schien meine Konfiguration nicht zu beeinflussen. Vielleicht habe ich es falsch gemacht. Benj vor 8 Jahren 0
@Benj Es schien anfangs auch nicht für mich zu funktionieren, aber einen Neustart später? Ich bin rätselhaft, was anfing zu arbeiten. wegry vor 8 Jahren 0
@wegry Nun, sagen wir mal, beide Methoden sind in Ordnung ... Benj vor 8 Jahren 0
2018 für mich arbeitete `prompt cmd / c echo ($ t $ s): $ p $ g`, um die Datei` user-profile.cmd` (windows10) hinzuzufügen. Edwin vor 6 Jahren 0
0
Stan Gabenov

Einzeilenänderung für cmder. Setzen Sie es in cmder \ config \ my_config.lua

function my_prompt_filter() cwd = clink.get_cwd() prompt = "\x1b[1;32;40m $> \x1b[33;40m" new_value = string.gsub(prompt, "", cwd) clink.prompt.value = string.gsub(new_value, "", "λ") end  clink.prompt.register_filter(my_prompt_filter, 1) 

Ergebnis:

C:\Users\user1 $> C:\Users\user1 $> date The current date is: 02.02.2018 C:\Users\user1 $>