Question Comment puis-je personnaliser en permanence l'invite de commande sous Windows 7?


Je voudrais changer l'invite pour $p$g$_$f en permanence, mais il se réinitialise chaque fois que je rouvre la fenêtre de commande.

Comment puis-je le faire rester pour toujours pour l'éternité?


73
2017-08-19 13:36


origine


Ceci est une question intéressante (+1) car il n'y a pas beaucoup de gens de nos jours qui savent même que leur invite DOS peut être personnalisée. - Randolf Richardson
N'est-ce pas ce qu'on appelle les invites de commande maintenant? - LarsTech
@ TechsTech: Oui, le DOS est parti depuis longtemps. - grawity
Vieilles habitudes! Ce sera toujours une invite DOS pour moi. - oscilatingcretin
@Randolf: Je ne savais certainement pas! Bien mérité +1 à cette question. - jprete


Réponses:


Créez une nouvelle variable d'environnement appelée PROMPT. Définissez la valeur de la variable sur l'invite souhaitée.

enter image description here

enter image description here


64
2017-08-19 13:40



+1 Pour être la seule réponse à mentionner la chose importante dans la première phrase. Une fois que l’on sait que l’invite émise par les interpréteurs de commandes est contrôlée par une variable d’environnement, le reste est un exercice simple d’application. la réponse générique de SuperUser à propos des variables d'environnement. - JdeBP
En fait, ce n'est pas la seule réponse à mentionner la création de la variable PROMPT - ma réponse le mentionne également à l'étape 4, qui se lit comme suit: 4. Créez une variable appelée "PROMPT" et insérez le texte d'invite souhaité (...) - Randolf Richardson
Techniquement, ma réponse mentionne également la variable Prompt car elle fournit la commande pour la définir. :) - EBGreen
EBGreen et Randolf Richardson, qu'en est-il "à la première phrase"vous échappe-t-il tous les deux? - JdeBP


À l'invite de commande, tapez:

setx Prompt $p$g$_$f

Rouvrez ensuite l'invite de commandes.

Pour ceux qui ne savent pas comment obtenir de l'aide pour les commandes DOS / CMD, tapez:

setx /?

Obtenir:

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

71
2017-08-19 13:43



J'ai essayé cela aussi et cela a fonctionné parfaitement. Je devais marquer les autres gars comme la réponse, même si le vôtre était plus droit et précis. Le sien était le premier, alors je devais faire ce qui était juste. Je vous ai toutefois élevé. - oscilatingcretin
Je ne me soucie pas vraiment de savoir qui est marqué comme réponse. Je ferai toutefois remarquer à l’avenir (laissez-le tel quel) que la principale décision pour marquer une réponse n’est pas de savoir qui a répondu en premier, mais quelle est la meilleure réponse. S'il est vrai que marquer la réponse est bon en ce sens qu’elle raison marquer la réponse est d'aider les personnes qui trouvent cette question plus tard à trouver plus rapidement la meilleure solution. Comme il n'y a rien de mal avec l'autre solution dans ce cas particulier, cela n'a pas d'importance. - EBGreen
J'aime particulièrement cette réponse (+1) car elle montre qu'il y a plus d'une façon de faire la même chose (quelque chose qui est particulièrement souligné avec Perl [programmation]). - Randolf Richardson
Je suis d'accord qu'il ne s'agit pas de la première réponse. Vous avez tous les deux répondu à ma question de base sur la manière de modifier définitivement l'invite. Lorsque deux personnes réalisent la même chose, la solution de rechange consiste à utiliser la première réponse. Le vôtre était court et ciblé, abordant le problème de base, alors que son approche était plus complexe, faisant appel à l’interface utilisateur et exposant davantage d’options concernant les variables d’environnement. J'ai pesé les options avec soin avant de choisir la réponse. - oscilatingcretin
Ce serait bien d’élargir votre réponse. Il manque actuellement de contexte. S'il vous plaît regarder notre court Comment répondre guide pour voir comment vous pouvez améliorer votre réponse. Alors, qu'est-ce que setx exactement et pourquoi at-il continué à se réinitialiser? - Tom Wijsman


Pour modifier l'apparence de votre invite DOS (ou "Invite de commandes"), cliquez avec le bouton droit sur "Ordinateur" (généralement sur votre bureau Windows ou dans le menu Démarrer de Windows), puis procédez comme suit:

  1. Cliquez sur le libellé "Paramètres système avancés"
  2. Cliquez sur le bouton "Variables d'environnement ..."
  3. Cliquez sur le bouton "Nouveau ..." (une "variable utilisateur" ne concerne que vous, et les "variables système" affectent tous les utilisateurs)
  4. Créez une variable appelée "PROMPT" et insérez le texte d'invite souhaité (comme je l'ai inclus pour vous dans l'image finale ci-dessous)
  5. Cliquez sur le bouton "OK" pour fermer la fenêtre "Variables d'environnement"
  6. Cliquez sur le bouton "OK" pour fermer la fenêtre "Propriétés système"

Ce changement survivra également aux redémarrages.

enter image description here

enter image description here

enter image description here


21
2017-08-19 13:53



J'adore comment vous avez mis en évidence où cliquer dans chaque image. Comment avez-vous réalisé cela? - Konerak
@Konerak: Merci! J'ai ouvert chaque fenêtre, appuyé sur Alt-PrintScreen (pour copier sur la fenêtre active en cours sur le Clip Board), puis l'ai collé dans Adobe Photoshop. Après cela, j'ai créé un calque au-dessus (ou devant) de l'image, l'ai rempli avec 100% de noir, changé l'opacité du calque à 25% (ce qui permet à l'image de fondre à un niveau de 75%) utilisé le Outil de sélection rectangulaire avec une "plume 3px" pour sélectionner la zone à mettre en surbrillance et appuyez sur la touche Suppr (à supprimer de cette couche noire). Après cela, j'ai enregistré l'image en tant que fichier .PNG dans mon répertoire C: / Temp / et l'a téléchargée ici. - Randolf Richardson
Je suis un ami de Photoshop complet, mais je vois de quoi vous parlez! Je vais donc essayer ceci la prochaine fois que je présente notre application à nos utilisateurs - beaucoup plus sympa que les lignes rouges MS Paint sur tout l'écran. Merci! - Konerak
Snagit coûte moins cher que Photoshop et vous offre également de nombreuses options pour travailler avec des captures d'écran. C'est mon préféré pour faire des captures d'écran. - EBGreen
Mis à jour pour expliquer comment accéder aux variables d'environnement dans Windows 7 et expliquer comment mettre en évidence une image. Des trucs de geek utiles, ici! - CigarDoug


Editez la commande de menu ou le lien qui lance l'invite de commande, modifiez sa cible par exemple.

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

Et si vous voulez un espace supplémentaire avant le curseur:

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

5
2018-02-15 20:29



+1 pour être une solution intéressante et unique. - ArtOfWarfare


Windows est livré avec Windows PowerShell, qui permet le traitement en pipeline parmi d’autres fonctions antérieures à Linux.

Vous pouvez le démarrer en cliquant sur le bouton Démarrer et en entrant PowerShell, ce qui vous donne trois options. Cliquez sur PowerShell. Cliquez avec le bouton droit sur la barre de titre de la fenêtre et sélectionnez Propriétés. Dans la fenêtre d'ouverture, vous configurez les paramètres d'affichage et de comportement.

Sinon, au lieu d'ouvrir PowerShell en premier lieu, sélectionnez et cliquez sur les modules PowerShell.

Consultez la documentation Microsoft pour savoir ce que vous pouvez faire:

PS: Je ne recommanderais pas le shell classique si vous développez des applications console.


4
2017-08-19 17:49



+1 pour une autre bonne réponse. J'aime particulièrement le terme "Shell classique". - Randolf Richardson
Les tuyaux existent également dans CMD.EXE et fonctionnent à peu près comme ils le font habituellement sur unix. Ils font partie de la syntaxe CMD des premières versions bêta publiques de NT et font également partie de la syntaxe de commande de COMMAND.COM sous DOS. - RBerteig
La grande différence entre les pipes shell de commandes, les pipes shell nix et les pipes powershell est que les pipes powershell transmettent des objets et non des chaînes. Ceci est un changeur de jeu imo. - EBGreen
Qu'est-ce que le PowerShell a à voir avec la question? - Synetech
@Syntech inc. - Rien directement Indirectement, cependant, il s'agit d'une alternative à l'utilisation de cmd.exe qui répondrait à l'intention de la question en fournissant une invite personnalisable pouvant être définie via un paramètre de profil. - EBGreen