Wie kann ich die Eingabeaufforderung in Windows 7 dauerhaft anpassen?

74

Ich möchte die Eingabeaufforderung $p$g$_$fdauerhaft ändern , sie wird jedoch jedes Mal von selbst zurückgesetzt, wenn ich das Befehlsfenster erneut öffne.

Wie kann ich dafür sorgen, dass es für immer dasselbe bleibt?

oscilatingcretin
quelle
9
Dies ist eine interessante Frage (+1), da es heutzutage nicht sehr viele Leute gibt, die sogar wissen, dass ihre DOS-Eingabeaufforderung angepasst werden kann.
Randolf Richardson
14
Werden diese Befehle jetzt nicht als Eingabeaufforderungen bezeichnet?
LarsTech
3
@LarsTech: Ja, DOS ist längst vorbei.
Grawity
7
Alte Gewohnheiten! Es wird immer eine DOS-Eingabeaufforderung für mich sein.
oscilatingcretin
2
@Randolf: Ich wusste es bestimmt nicht! Wohlverdiente +1 auf diese Frage.
Jprete

Antworten:

65

Erstellen Sie eine neue Umgebungsvariable mit dem Namen PROMPT. Stellen Sie den Variablenwert auf die gewünschte Eingabeaufforderung ein.

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

John T
quelle
2
+1 Als einzige Antwort, um das Wichtige im ersten Satz zu erwähnen. Sobald bekannt ist, dass die von Befehlsinterpretern ausgegebene Eingabeaufforderung von einer Umgebungsvariablen gesteuert wird, besteht der Rest aus einer einfachen Übung zum Anwenden der generischen SuperUser-Antwort zu Umgebungsvariablen .
JdeBP
Tatsächlich ist dies nicht die einzige Antwort, um die Erstellung der PROMPT-Variablen zu erwähnen - meine Antwort erwähnt dies auch in Schritt 4, der lautet: 4. Erstellen Sie eine Variable mit dem Namen "PROMPT" und fügen Sie den gewünschten Aufforderungstext ein (...)
Randolf Richardson
2
Technisch erwähnt meine Antwort auch die Prompt-Variable, da sie den Befehl zum Festlegen enthält. :)
EBGreen
4
EBGreen und Randolf Richardson, was ist mit " im ersten Satz ", das euch beiden entgeht?
JdeBP
71

Geben Sie an der Eingabeaufforderung Folgendes ein:

setx Prompt $p$g$_$f

Öffnen Sie dann die Eingabeaufforderung erneut.

Wenn Sie nicht wissen, wie Sie Hilfe zu DOS / CMD-Befehlen erhalten, geben Sie Folgendes ein:

setx /?

Bekommen:

SetX has three ways of working:

Syntax 1:
    SETX [/S system [/U [domain\]user [/P [password]]]] var value [/M]

Syntax 2:
    SETX [/S system [/U [domain\]user [/P [password]]]] var /K regpath [/M]

Syntax 3:
    SETX [/S system [/U [domain\]user [/P [password]]]]
         /F file {var {/A x,y | /R x,y string}[/M] | /X} [/D delimiters]

Description:
    Creates or modifies environment variables in the user or system
    environment. Can set variables based on arguments, regkeys or
    file input.

Parameter List:
    /S     system          Specifies the remote system to connect to.

    /U     [domain\]user   Specifies the user context under which
                           the command should execute.

    /P     [password]      Specifies the password for the given
                           user context. Prompts for input if omitted.

    var                    Specifies the environment variable to set.

    value                  Specifies a value to be assigned to the
                           environment variable.

    /K     regpath         Specifies that the variable is set based
                           on information from a registry key.
                           Path should be specified in the format of
                           hive\key\...\value. For example,
                           HKEY_LOCAL_MACHINE\System\CurrentControlSet\
                           Control\TimeZoneInformation\StandardName.

    /F     file            Specifies the filename of the text file
                           to use.

    /A     x,y             Specifies absolute file coordinates
                           (line X, item Y) as parameters to search
                           within the file.

    /R     x,y string      Specifies relative file coordinates with
                           respect to "string" as the search parameters.

    /M                     Specifies that the variable should be set in
                           the system wide (HKEY_LOCAL_MACHINE)
                           environment. The default is to set the
                           variable under the HKEY_CURRENT_USER
                           environment.

    /X                     Displays file contents with x,y coordinates.

    /D     delimiters      Specifies additional delimiters such as ","
                           or "\". The built-in delimiters are space,
                           tab, carriage return, and linefeed. Any
                           ASCII character can be used as an additional
                           delimiter. The maximum number of delimiters,
                           including the built-in delimiters, is 15.

    /?                     Displays this help message.

NOTE: 1) SETX writes variables to the master environment in the registry.

      2) On a local system, variables created or modified by this tool
         will be available in future command windows but not in the
         current CMD.exe command window.

      3) On a remote system, variables created or modified by this tool
         will be available at the next logon session.

      4) The valid Registry Key data types are REG_DWORD, REG_EXPAND_SZ,
         REG_SZ, REG_MULTI_SZ.

      5) Supported hives:  HKEY_LOCAL_MACHINE (HKLM),
         HKEY_CURRENT_USER (HKCU).

      6) Delimiters are case sensitive.

      7) REG_DWORD values are extracted from the registry in decimal
         format.

Examples:
    SETX MACHINE COMPAQ
    SETX MACHINE "COMPAQ COMPUTER" /M
    SETX MYPATH "%PATH%"
    SETX MYPATH ~PATH~
    SETX /S system /U user /P password  MACHINE COMPAQ
    SETX /S system /U user /P password MYPATH ^%PATH^%
    SETX TZONE /K HKEY_LOCAL_MACHINE\System\CurrentControlSet\
         Control\TimeZoneInformation\StandardName
    SETX BUILD /K "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows
         NT\CurrentVersion\CurrentBuildNumber" /M
    SETX /S system /U user /P password TZONE /K HKEY_LOCAL_MACHINE\
         System\CurrentControlSet\Control\TimeZoneInformation\
         StandardName
    SETX /S system /U user /P password  BUILD /K
         "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\
         CurrentVersion\CurrentBuildNumber" /M
    SETX /F ipconfig.out /X
    SETX IPADDR /F ipconfig.out /A 5,11
    SETX OCTET1 /F ipconfig.out /A 5,3 /D "#$*."
    SETX IPGATEWAY /F ipconfig.out /R 0,7 Gateway
    SETX /S system /U user /P password  /F c:\ipconfig.out /X
EBGreen
quelle
1
Ich habe es auch versucht und es hat perfekt funktioniert. Ich musste jedoch den anderen als Antwort markieren, obwohl der Ihre klarer und auf den Punkt gebracht war. Seiner war der erste, also musste ich tun, was richtig war. Ich habe dich allerdings beleidigt.
oscilatingcretin
30
Es ist mir egal, wer als Antwort markiert wird. Ich werde jedoch darauf hinweisen, dass die Schlüsselentscheidung für das Markieren einer Antwort nicht darin besteht, wer zuerst geantwortet hat, sondern welche Antwort die beste ist. Zwar ist es richtig, dass das Markieren der Antwort insofern gut ist, als sie einen Wiederholungsfaktor darstellt, aber der eigentliche Grund für das Markieren der Antwort besteht darin, Menschen, die diese Frage später finden, zu helfen, schneller die beste Lösung zu finden. Da an der anderen Lösung in diesem speziellen Fall nichts auszusetzen ist, spielt es keine Rolle.
EBGreen
1
Ich mag diese Antwort (+1) besonders, weil sie zeigt, dass es mehr als eine Möglichkeit gibt, dasselbe zu tun ( etwas, das bei Perl [Programmierung] besonders hervorgehoben wird ).
Randolf Richardson
3
Ich stimme zu, dass es nicht um die erste Antwort geht. Sie beide haben meine grundlegende Frage beantwortet, wie Sie die Eingabeaufforderung dauerhaft ändern können. Wenn zwei Personen dasselbe erreichen, ist die erste Antwort der Fall. Ihr Ansatz war kurz und prägnant und behandelte das Problem der Bare-Bones, während sein Ansatz ein komplizierterer Ansatz war, bei dem die Optionen in Bezug auf Umgebungsvariablen erweitert wurden. Ich habe die Optionen sorgfältig abgewogen, bevor ich die Antwort gewählt habe.
oscilatingcretin
2
Es wäre toll, Ihre Antwort zu erweitern. Derzeit fehlt der Kontext. Bitte schauen Sie auf unserer kurzen Wie Antwort Führer zu sehen , wie Sie Ihre Antwort besser machen können. Also, was setxgenau macht es und warum hat es sich immer wieder selbst zurückgesetzt?
Tamara Wijsman
21

Um das Erscheinungsbild Ihrer DOS-Eingabeaufforderung (oder "Eingabeaufforderung") zu ändern, klicken Sie mit der rechten Maustaste auf "Computer" (normalerweise auf Ihrem Windows-Desktop oder im Windows-Startmenü) und führen Sie dann die folgenden Schritte aus:

  1. Klicken Sie auf die Bezeichnung "Erweiterte Systemeinstellungen"
  2. Klicken Sie auf die Schaltfläche "Umgebungsvariablen ..."
  3. Klicken Sie auf die Schaltfläche "Neu ..." (eine "Benutzervariable" betrifft nur Sie und "Systemvariablen" betrifft alle Benutzer)
  4. Erstellen Sie eine Variable mit dem Namen "PROMPT" und fügen Sie den gewünschten Aufforderungstext ein (wie im letzten Bild unten für Sie angegeben).
  5. Klicken Sie auf die Schaltfläche "OK", um das Fenster "Umgebungsvariablen" zu schließen
  6. Klicken Sie auf die Schaltfläche "OK", um das Fenster "Systemeigenschaften" zu schließen

Diese Änderung übersteht auch Neustarts.

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

Randolf Richardson
quelle
2
Ich finde es toll, wie Sie hervorgehoben haben, wo in jedes Bild geklickt werden soll. Wie haben Sie das erreicht?
Konerak
4
@Konerak: Danke! Ich öffnete jedes Fenster, drückte Alt-PrintScreen (um das aktuell aktive Fenster in die Zwischenablage zu kopieren) und fügte es dann in Adobe Photoshop ein. Danach erstellte ich eine Ebene über (oder vor) dem Bild, füllte es mit 100% Schwarz, änderte die Deckkraft der Ebene auf 25% (wodurch das Bild zu 75% ausgeblendet werden kann) und dann auf I wählte mit dem Rechteckigen Auswahlrechteck mit einer "3px Feder" den hervorzuhebenden Bereich aus und drückte die Entf-Taste (um ihn aus dieser schwarzen Ebene zu löschen). Danach habe ich das Bild als PNG-Datei in meinem Verzeichnis C: / Temp / gespeichert und hier hochgeladen.
Randolf Richardson
1
Ich bin ein absoluter Photoshop-Neuling, aber ich verstehe, wovon du sprichst! Ich werde es das nächste Mal versuchen, wenn ich unseren Benutzern unsere Anwendung präsentiere - viel schöner als die roten Linien von MS Paint auf dem gesamten Bildschirm. Vielen Dank!
Konerak
Snagit kostet weniger als Photoshop und bietet Ihnen viele Möglichkeiten, um auch mit Bildschirm-Catures zu arbeiten. Es ist mein Favorit für Screen Caps.
EBGreen
Verbessert, um zu erklären, wie Umgebungsvariablen in Windows 7 aufgerufen werden, und um zu erklären, wie ein Bild hervorgehoben wird. Nützliches für Geeks, hier!
CigarDoug
5

Bearbeiten Sie den Menübefehl oder den Link, der die Eingabeaufforderung startet, und ändern Sie das Ziel, z.

%SystemRoot%\system32\cmd.exe /K "prompt $p$g$_$f"

Und wenn Sie ein zusätzliches Leerzeichen vor dem Cursor wünschen:

%SystemRoot%\system32\cmd.exe /K "prompt $p$g$_$f "
JJ Okie
quelle
+1 für eine interessante und einzigartige Lösung.
ArtOfWarfare
4

Windows wird mit Windows PowerShell ausgeliefert, mit dem Pipelining zwischen anderen früheren Nur-Linux-Funktionen möglich ist.

Sie können das Programm starten, indem Sie auf die Schaltfläche Start klicken und PowerShell aufrufen. Dort stehen Ihnen drei Optionen zur Verfügung. Klicken Sie auf PowerShell. Klicken Sie mit der rechten Maustaste auf die Fenstertitelleiste und wählen Sie Eigenschaften. Im sich öffnenden Fenster konfigurieren Sie die Einstellungen für Ansicht und Verhalten.

Andernfalls müssen Sie PowerShell-Module auswählen und auf PowerShell-Module klicken, anstatt sie zuerst zu öffnen.

In der Microsoft-Dokumentation erfahren Sie, was Sie tun können:

PS: Ich würde die klassische Shell nicht empfehlen, wenn Sie Konsolenanwendungen entwickeln.

Lorenz Lo Sauer
quelle
+1 für eine weitere gute Antwort. Mir gefällt besonders der Begriff "Klassische Muschel".
Randolf Richardson
1
Pipes gibt es auch in CMD.EXE und sie funktionieren so ziemlich genauso wie sie es klassisch unter Unix tun. Sie waren Teil der CMD-Syntax der frühesten öffentlichen Betaversionen von NT und waren auch Teil der Befehlssyntax von COMMAND.COM unter DOS.
RBerteig
1
Der große Unterschied zwischen Befehlsshell-Pipes, * nix-Shell-Pipes und Powershell-Pipes besteht darin, dass die Powershell-Pipes Objekte übermitteln, die keine Zeichenfolgen sind. Dies ist ein Game Changer imo.
EBGreen
Was hat die PowerShell mit der Frage zu tun?
Synetech
1
@Syntech inc. - Nichts direkt. Indirekt ist es jedoch eine Alternative zur Verwendung von cmd.exe, die die in Frage stehende Absicht erfüllt, indem eine anpassbare Eingabeaufforderung bereitgestellt wird, die über eine Profileinstellung festgelegt werden kann.
EBGreen
1

Endgültige Methode:

setx prompt ""

Für alle Benutzer:

setx prompt "" /M

Beispiel für eine anpassbare Eingabeaufforderung mit Stil:

setx PROMPT "$_$e[0;1;44mN$e[1;30;47mI$e[0;1;44mC$E[35;40m $d$s$t$h$h$h$h$h$h$_$E[1;33;40m$p$_$E[0;0m~$g$s"
Jerson Martínez
quelle