Come posso personalizzare permanentemente il Prompt dei comandi in Windows 7?


74

Vorrei modificare il prompt in modo $p$g$_$fpermanente, ma si reimposta ogni volta che riapro la finestra di comando.

Come posso convincerlo a rimanere lo stesso per sempre per l'eternità?


9
Questa è una domanda interessante (+1) perché al giorno d'oggi non ci sono molte persone che sanno persino che il loro prompt DOS può essere personalizzato.
Randolf Richardson,

14
Non sono questi i prompt dei comandi chiamati adesso?
LarsTech,

3
@ LaRsTech: Sì, il DOS è ormai scomparso.
gravità

7
Vecchie abitudini! Sarà sempre un prompt di DOS per me.
oscilatingcretin,

2
@Randolf: certamente non lo sapevo! Meritato +1 a questa domanda.
giovedì

Risposte:


65

Creare una nuova variabile d'ambiente chiamata PROMPT. Impostare il valore della variabile sul prompt desiderato.

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine


2
+1 Per essere l'unica risposta a menzionare la cosa importante nella prima frase. Una volta che si sa che il prompt emesso dagli interpreti dei comandi è controllato da una variabile d'ambiente, il resto si trasforma in un semplice esercizio nell'applicare la risposta generica del SuperUser sulle variabili d'ambiente .
JdeBP,

In realtà, questa non è l'unica risposta per menzionare la creazione della variabile PROMPT - la mia risposta menziona anche questo nel passaggio 4, che recita: 4. Creare una variabile chiamata "PROMPT" e inserire il testo del prompt desiderato (...)
Randolf Richardson,

2
Tecnicamente la mia risposta menziona anche la variabile Prompt poiché fornisce il comando per impostarla. :)
EBGreen

4
EBGreen e Randolf Richardson, che dire di " nella prima frase " sta scappando da voi due?
JdeBP,

71

Al prompt dei comandi digitare:

setx Prompt $p$g$_$f

Quindi riaprire il prompt dei comandi.

Per chiunque non sappia come ottenere assistenza per i comandi DOS / CMD, digitare:

setx /?

Ottenere:

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

1
Ho provato anche questo e ha funzionato perfettamente. Ho dovuto contrassegnare l'altra persona come la risposta, anche se la tua era più diretta e precisa. Il suo è stato il primo, quindi ho dovuto fare la cosa giusta. Ti ho votato, però.
oscilatingcretin,

30
Non mi interessa davvero chi viene contrassegnato come risposta. Sottolineerò per riferimento futuro (lasciatelo com'è per questo) che la decisione chiave per contrassegnare una risposta non è chi ha risposto per primo, ma quale è la risposta migliore. Mentre è vero che contrassegnare la risposta è buono in quanto dà rep, la vera ragione per contrassegnare la risposta è aiutare le persone che trovano questa domanda in un secondo momento a trovare più rapidamente la soluzione migliore. Dato che non c'è niente di sbagliato nell'altra soluzione in questo caso particolare, non importa.
EBGreen

1
Mi piace particolarmente questa risposta (+1) perché mostra che esiste più di un modo per fare la stessa cosa ( qualcosa che è particolarmente enfatizzato con Perl [programmazione] ).
Randolf Richardson,

3
Sono d'accordo che non si tratta della prima risposta. Entrambi avete risposto alla mia domanda di base su come modificare permanentemente il prompt. Quando due persone ottengono la stessa cosa, il fallback è usare la prima risposta. Il tuo è stato breve e puntuale, affrontando il problema delle ossa nude, mentre il suo era un approccio più complicato, il salto dell'interfaccia utente che esponeva più opzioni per quanto riguarda le variabili di ambiente. Ho valutato attentamente le opzioni prima di scegliere la risposta.
oscilatingcretin,

2
Sarebbe bello espandere la tua risposta. Attualmente è privo di contesto. Consulta la nostra breve guida Come rispondere per vedere come puoi migliorare la tua risposta. Quindi, cosa fa setxesattamente e perché ha continuato a resettarsi?
Tamara Wijsman,

21

Per modificare l'aspetto del prompt del DOS (o "Prompt dei comandi"), fare clic con il pulsante destro del mouse su "Computer" (in genere sul desktop di Windows o nel menu Start di Windows), quindi attenersi alla seguente procedura:

  1. Fai clic sull'etichetta "Impostazioni di sistema avanzate"
  2. Fai clic sul pulsante "Variabili d'ambiente ..."
  3. Fai clic sul pulsante "Nuovo ..." (una "Variabile utente" influisce solo su di te e "Variabili di sistema" influenza tutti gli utenti)
  4. Crea una variabile chiamata "PROMPT" e inserisci il testo del prompt desiderato (come ho incluso per te nell'immagine finale di seguito)
  5. Fare clic sul pulsante "OK" per chiudere la finestra "Variabili d'ambiente"
  6. Fare clic sul pulsante "OK" per chiudere la finestra "Proprietà del sistema"

Questa modifica sopravviverà anche ai riavvii.

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine


2
Adoro come hai evidenziato dove fare clic in ogni immagine. Come ci sei riuscito?
Konerak,

4
@Konerak: grazie! Ho aperto ciascuna finestra, ho premuto Alt-PrintScreen (per copiare l'attuale finestra attiva negli Appunti), quindi l'ho incollato in Adobe Photoshop. Successivamente, ho creato un livello sopra (o davanti) l'immagine, riempito con il 100% di nero, modificato l'opacità del livello al 25% (che consente all'immagine di sfumare a un livello del 75%), quindi I utilizzato lo strumento Selezione rettangolare con una "sfumatura 3px" per selezionare l'area da evidenziare e premere il tasto Elimina (per eliminare da questo livello nero). Successivamente, ho salvato l'immagine come file .PNG nella mia directory C: / Temp / e l'ho caricata qui.
Randolf Richardson,

1
Sono un noob completo di Photoshop, ma capisco di cosa stai parlando! Lo proverò la prossima volta che presenterò la nostra applicazione ai nostri utenti, molto più bella delle linee rosse di MS Paint su tutto lo schermo. Grazie!
Konerak,

Snagit costa meno di Photoshop e offre anche molte opzioni per lavorare con le immagini dello schermo. È il mio preferito per fare i tappi dello schermo.
EBGreen

Eseguito l'upgrade per spiegare come arrivare a Variabili d'ambiente in Windows 7 e per spiegare come evidenziare un'immagine. Cose utili per i geek, qui!
CigarDoug

5

Modifica il comando di menu o il link che avvia il prompt dei comandi, cambia la sua destinazione, ad es.

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

E se vuoi uno spazio extra prima del cursore:

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

+1 per essere una soluzione interessante e unica.
ArtOfWarfare il

4

Windows viene fornito con Windows PowerShell che consente il pipelining tra le altre funzionalità precedenti solo per Linux.

È possibile avviarlo facendo clic sul pulsante Start e digitando PowerShell, che offre tre opzioni. Fai clic su PowerShell. Fare clic con il tasto destro sulla barra del titolo della finestra e selezionare Proprietà. Nella finestra di apertura si configurano le impostazioni di visualizzazione e comportamento.

Altrimenti invece di aprire PowerShell in primo luogo selezionare e fare clic sui moduli PowerShell.

Consulta la documentazione di Microsoft per sapere cosa puoi fare:

PS: Non consiglierei la shell classica se sviluppi applicazioni console.


+1 per un'altra buona risposta. Mi piace particolarmente il termine "guscio classico".
Randolf Richardson,

1
I tubi esistono anche in CMD.EXE e funzionano più o meno allo stesso modo di quelli classici su unix. Hanno fatto parte della sintassi CMD dalle prime versioni beta pubbliche di NT e facevano anche parte della sintassi dei comandi di COMMAND.COM su DOS.
RBerteig,

1
L'enorme differenza tra i tubi shell di comando, i tubi shell * nix e i tubi PowerShell è che i tubi PowerShell passano oggetti non stringhe. Questo è un cambio di gioco imo.
EBGreen

Cosa ha a che fare PowerShell con la domanda?
Synetech,

1
@Syntech inc. - Niente direttamente. Indirettamente, tuttavia, è un'alternativa all'utilizzo di cmd.exe che soddisferebbe l'intento della domanda fornendo un prompt personalizzabile che potrebbe essere impostato tramite un'impostazione del profilo.
EBGreen

1

Metodo definitivo:

setx prompt ""

Per tutti gli utenti:

setx prompt "" /M

Esempio di prompt personalizzabile, con stile:

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"
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.