¿Cómo puedo personalizar permanentemente el símbolo del sistema en Windows 7?

74

Me gustaría cambiar la solicitud a $p$g$_$fpermanentemente, pero se restablece cada vez que vuelvo a abrir la ventana de comandos.

¿Cómo puedo lograr que permanezca igual para siempre por la eternidad?

oscilantecretina
fuente
9
Esta es una pregunta interesante (+1) porque no hay muchas personas en estos días que sepan que su solicitud de DOS se puede personalizar.
Randolf Richardson
14
¿No se llaman estos comandos ahora?
LarsTech
3
@ LarsTech: Sí, DOS se fue hace mucho tiempo.
Grawity
77
Viejos hábitos! Siempre será un mensaje de DOS para mí.
oscilatingcretin
2
@Randolf: ¡Ciertamente no lo sabía! Bien merecido +1 a esta pregunta.
jprete

Respuestas:

65

Cree una nueva variable de entorno llamada PROMPT. Establezca el valor de la variable en el indicador deseado.

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

John T
fuente
2
+1 Por ser la única respuesta para mencionar lo importante en la primera oración. Una vez que se sabe que el aviso emitido por los intérpretes de comandos está controlado por una variable de entorno, el resto se convierte en un ejercicio simple para aplicar la respuesta genérica del Superusuario sobre las variables de entorno .
JdeBP
En realidad, esta no es la única respuesta para mencionar la creación de la variable PROMPT: mi respuesta también menciona esto en el paso 4, que dice: 4. Cree una variable llamada "PROMPT" e inserte el texto de solicitud deseado (...)
Randolf Richardson
2
Técnicamente, mi respuesta también menciona la variable Prompt ya que proporciona el comando para configurarla. :)
EBGreen
44
EBGreen y Randolf Richardson, ¿qué tal " en la primera oración " se les escapa?
JdeBP
71

En el símbolo del sistema, escriba:

setx Prompt $p$g$_$f

Luego vuelva a abrir el símbolo del sistema.

Para cualquiera que no sepa cómo obtener ayuda para los comandos de DOS / CMD, escriba:

setx /?

Llegar:

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
fuente
1
Intenté esto también, y funcionó perfectamente. Sin embargo, tuve que marcar la respuesta del otro tipo, a pesar de que la suya era más directa y precisa. La suya fue la primera, así que tuve que hacer lo correcto. Sin embargo, te he votado.
oscilatingcretin
30
Realmente no me importa quién sea marcado como la respuesta. Sin embargo, señalaré para referencia futura (déjelo como es para este) que la decisión clave para marcar una respuesta no es quién respondió primero, sino cuál es la mejor respuesta. Si bien es cierto que marcar la respuesta es buena, ya que da rep, la verdadera razón para marcar la respuesta es ayudar a las personas que encuentran esta pregunta más tarde para encontrar la mejor solución más rápidamente. Dado que no hay nada malo con la otra solución en este caso particular, no importa.
EBGreen
1
Particularmente me gusta esta respuesta (+1) porque muestra que hay más de una forma de hacer lo mismo ( algo que se enfatiza particularmente con Perl [programación] ).
Randolf Richardson
3
Estoy de acuerdo en que no se trata de la primera respuesta. Ambos respondieron mi pregunta básica sobre cómo cambiar permanentemente la solicitud. Cuando dos personas logran lo mismo, la alternativa es usar la primera respuesta. La suya fue corta y al punto, abordando el tema básico, mientras que el suyo era un enfoque más complicado, que saltaba la interfaz de usuario y exponía más opciones con respecto a las variables de entorno. Sopesé las opciones cuidadosamente antes de elegir la respuesta.
oscilatingcretin
2
Sería genial ampliar tu respuesta. Actualmente carece de contexto. Consulte nuestra breve guía Cómo responder para ver cómo puede mejorar su respuesta. Entonces, ¿qué hace setxexactamente y por qué siguió reiniciando?
Tamara Wijsman
21

Para cambiar la apariencia de su Símbolo del sistema DOS (o "Símbolo del sistema"), haga clic con el botón derecho en "Computadora" (generalmente en su escritorio de Windows o en el menú Inicio de Windows), luego siga estos pasos:

  1. Haga clic en la etiqueta "Configuración avanzada del sistema"
  2. Haga clic en el botón "Variables de entorno ..."
  3. Haga clic en el botón "Nuevo ..." (una "Variable de usuario" solo lo afecta a usted, y las "Variables del sistema" afectan a todos los usuarios)
  4. Cree una variable llamada "PROMPT" e inserte el texto de solicitud deseado (como lo he incluido en la imagen final a continuación)
  5. Haga clic en el botón "Aceptar" para cerrar la ventana "Variables de entorno"
  6. Haga clic en el botón "Aceptar" para cerrar la ventana "Propiedades del sistema"

Este cambio también sobrevivirá a los reinicios.

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Randolf Richardson
fuente
2
Me encanta cómo resaltaste dónde hacer clic en cada imagen. ¿Cómo lograste esto?
Konerak
44
@Konerak: ¡Gracias! Abrí cada ventana, presioné Alt-PrintScreen (para copiar en la ventana activa actual en el Portapapeles), luego la pegué en Adobe Photoshop. Después de eso, creé una capa encima (o delante) de la imagen, la rellené con 100% de negro, cambié la opacidad de la capa al 25% (lo que permite que la imagen se desvanezca a un nivel del 75%), luego utilizó la herramienta Marco rectangular con una "pluma de 3px" para seleccionar el área a resaltar y presionó la tecla Eliminar (para eliminar de esta capa negra). Después de eso, guardé la imagen como un archivo .PNG en mi directorio C: / Temp / y la cargué aquí.
Randolf Richardson
1
Soy un novato de Photoshop completo, ¡pero veo de lo que estás hablando! Voy a intentar esto la próxima vez que presente nuestra aplicación a nuestros usuarios, mucho mejor que las líneas rojas de MS Paint en toda la pantalla. ¡Gracias!
Konerak
Snagit cuesta menos que Photoshop y también te da muchas opciones para trabajar con capturas de pantalla. Es mi favorito para hacer tapas de pantalla.
EBGreen
Votado por explicar cómo llegar a Variables de entorno en Windows 7 y por cómo resaltar una imagen. ¡Cosas geek útiles, aquí!
CigarDoug
5

Edite el comando de menú o enlace que inicia el símbolo del sistema, cambie su objetivo, por ejemplo.

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

Y si quieres un espacio extra antes del cursor:

%SystemRoot%\system32\cmd.exe /K "prompt $p$g$_$f "
JJ Okie
fuente
+1 por ser una solución interesante y única.
ArtOfWarfare
4

Windows viene con Windows PowerShell, que permite canalizar entre otras características anteriores exclusivas de Linux.

Puede iniciarlo haciendo clic en el botón Inicio e ingresando a PowerShell, que le brinda tres opciones. Haz clic en PowerShell. Haga clic derecho en la barra de título de la ventana y seleccione Propiedades. En la ventana de apertura, configura las configuraciones de vista y comportamiento.

De lo contrario, en lugar de abrir PowerShell en primer lugar, seleccione y haga clic en los módulos de PowerShell.

Consulte la documentación de Microsoft para saber qué puede hacer:

PD: No recomendaría el shell clásico si desarrollas aplicaciones de consola.

Lorenz Lo Sauer
fuente
+1 por otra buena respuesta. Me gusta especialmente el término "Shell clásico".
Randolf Richardson
1
Las tuberías también existen en CMD.EXE, y funcionan prácticamente igual que en Unix. Han sido parte de la sintaxis CMD de las primeras versiones beta públicas de NT, y también fueron parte de la sintaxis de comandos de COMMAND.COM en DOS.
RBerteig
1
La gran diferencia entre las tuberías de shell de comando, las tuberías de shell * nix y las tuberías de PowerShell es que las tuberías de PowerShell pasan objetos, no cadenas. Este es un cambio de juego imo.
EBGreen
¿Qué tiene que ver PowerShell con la pregunta?
Synetech
1
@Syntech inc. - Nada directamente. Sin embargo, indirectamente, es una alternativa al uso de cmd.exe que cumpliría con la intención de la pregunta al proporcionar un mensaje personalizable que podría establecerse mediante una configuración de perfil.
EBGreen
1

Método definitivo:

setx prompt ""

Para todos los usuarios:

setx prompt "" /M

Ejemplo de solicitud personalizable, con estilo:

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
fuente