Windows 7'de Komut İstemi'ni nasıl kalıcı olarak özelleştirebilirim?


74

Bilgi istemini $p$g$_$fkalıcı olarak değiştirmek istiyorum , ancak komut penceresini her yeniden açtığımda kendini sıfırlıyor.

Sonsuza dek sonsuza dek aynı kalmasını nasıl sağlayabilirim?


9
Bu ilginç bir soru (+1) çünkü bugünlerde DOS istemlerinin özelleştirilebileceğini bile bilen çok fazla insan yok.
Randolf Richardson

14
Bunlar Komut isteminde bulunmuyor mu?
LarsTech

3
@ LaRsTech: Evet, DOS çoktan gitti.
Grawity

7
Eski alışkanlıklar! Her zaman bana bir DOS komut istemi olacak.
oscilatingcretin

2
@Randolf: Kesinlikle bilmiyordum! Bu soruya +1 hak!
jprete

Yanıtlar:


65

PROMPT adlı yeni bir ortam değişkeni oluşturun. Değişken değerini istenen isteme ayarlayın.

görüntü tanımını buraya girin

görüntü tanımını buraya girin


2
+1 İlk cümlede önemli olan şeyi söyleyen tek cevap olduğu için. Biri komut tercümanları tarafından verilen komut isteminin bir ortam değişkeni tarafından kontrol edildiğini bildiğinde, geri kalanı genel SuperUser'ın çevre değişkenleri hakkındaki cevabını uygulamada basit bir alıştırmaya dönüşür .
JdeBP

Aslında, PROMPT değişkeninin oluşturulmasından bahseden tek cevap bu değil - cevabım ayrıca 4.
Randolf Richardson

2
Teknik olarak benim cevabım Prompt değişkeninden bahseder, çünkü onu ayarlamak için komut sağlar. :)
EBGreen

4
EBGreen ve Randolf Richardson, peki ya " ilk cümlede " ikinizden kaçıyor?
JdeBP

71

Komut istemine şunu yazın:

setx Prompt $p$g$_$f

Ardından komut istemini yeniden açın.

DOS / CMD komutları için yardım almayı bilmeyenler için şunu yazın:

setx /?

Almak:

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
Bunu da denedim ve mükemmel çalıştı. Diğer adamın cevabını işaretlemek zorunda kaldım, ama seninki daha düz olmasa da. Onun ilki, ben de doğru olanı yapmak zorunda kaldım. Yine de seni kızdırdım.
oscilatingcretin

30
Cevap olarak kimin işaretleneceği umrumda değil. Gelecekte referans olması için (bunun için olduğu gibi bırakın) bir cevabı işaretlemek için kilit kararın ilk önce cevaplayanın kim olmadığı, hangi cevabın en iyi olduğu olduğunu belirteceğim. Cevabı işaretlemenin rep vermesi açısından iyi olduğu doğru olsa da, cevabı işaretlemenin asıl nedeni , bu soruyu daha sonra bulan kişilere daha hızlı bir şekilde en iyi çözümü bulmalarında yardımcı olmaktır. Bu özel durumda diğer çözümde yanlış bir şey olmadığı için farketmez.
EBGreen

1
Ben özellikle bu cevabı sevdim (+1) çünkü aynı şeyi yapmanın birden fazla yolu olduğunu gösteriyor (özellikle Perl [programlama] ile vurgulanan bir şey ).
Randolf Richardson

3
Bunun ilk cevap ile ilgili olmadığını kabul ediyorum. İkiniz de istemi kalıcı olarak nasıl değiştireceğime dair temel soruma cevap verdiniz. İki kişi aynı şeyi başardığında, geri dönüş ilk cevabı kullanmaktır. Sizinki kısa ve net değildi, çıplak kemikler meselesine değinirken, çevre değişkenleriyle ilgili daha fazla seçenek sunan daha karmaşık bir UI-atlama yaklaşımıydı. Cevapları seçmeden önce seçenekleri dikkatlice tarttım.
oscilatingcretin

2
Cevabınızı genişletmek harika olurdu. Şu anda bağlam yoksundur. Lütfen cevabınızı nasıl daha iyi hale getirebileceğinizi görmek için lütfen Nasıl Cevap Vereceğimiz kılavuzuna bakın. Peki setxtam olarak ne yapıyor ve neden kendini sıfırlamaya devam ediyor?
Tamara Wijsman,

21

DOS Bilgi İstemi'nizin (veya "Komut İstemi" nin) görünümünü değiştirmek için, "Bilgisayar" üzerine sağ tıklayın (genellikle Windows Masaüstünde veya Windows Başlat Menüsünde), ardından aşağıdaki adımları izleyin:

  1. "Gelişmiş sistem ayarları" etiketini tıklayın
  2. "Ortam Değişkenleri ..." düğmesini tıklayın
  3. "Yeni ..." düğmesini tıklayın ("Kullanıcı değişkeni" yalnızca sizi etkiler ve "Sistem değişkenleri" tüm kullanıcıları etkiler)
  4. "PROMPT" adlı bir değişken oluşturun ve istediğiniz bilgi istemi metnini ekleyin (aşağıdaki son resme sizin de eklediğim gibi)
  5. "Ortam Değişkenleri" penceresini kapatmak için "Tamam" düğmesini tıklayın
  6. "Sistem Özellikleri" penceresini kapatmak için "Tamam" düğmesini tıklayın

Bu değişiklik aynı zamanda yeniden başlatmaya devam edecek.

görüntü tanımını buraya girin

görüntü tanımını buraya girin

görüntü tanımını buraya girin


2
Her görüntüde nereye tıklanacağını vurgulamanızı seviyorum. Bunu nasıl başardınız?
Konerak

4
@Konerak: Teşekkürler! Her pencereyi açtım, Alt-PrintScreen tuşuna bastım (mevcut aktif pencereyi Klip Panosuna kopyalamak için), sonra Adobe Photoshop'a yapıştırdım. Ondan sonra, görüntünün üstünde (veya önünde) bir katman oluşturdum,% 100 siyahla doldurdum, katmanın opaklığını% 25 olarak değiştirdim (görüntünün% 75 seviyesinde geçmesini sağlar), sonra I kullanılan Rectangular Marquee Tool vurgulamak alanı seçmek için bir "3px tüy" ile ve Delete tuşuna (bu siyah katmandan silmek için) bastırdı. Ondan sonra resmi C: / Temp / dizinime .PNG dosyası olarak kaydettim ve buraya yükledim.
Randolf Richardson

1
Ben tam bir photoshop noob, ama ben neden bahsettiğini anlıyorum! Bunu bir dahaki sefere deneyeceğim, uygulamamızı kullanıcılarımıza sunuyorum - ekranın her yanındaki MS Paint kırmızı çizgilerinden çok daha güzel. Teşekkürler!
Konerak

Snagit, Photoshop'takinden daha ucuzdur ve size ekran görüntüleriyle çalışmak için birçok seçenek sunar. Ekran kapakları yapmak için en sevdiğim şey.
EBGreen

Windows 7'de Ortam Değişkenlerine nasıl gidileceğini ve bir görüntünün nasıl vurgulanacağını açıklamak için geliştirilmiştir. Faydalı inek şeyler, burada!
CigarDoug

5

Menü komutunu veya komut istemini başlatan bağlantıyı düzenleyin, örneğin hedefini değiştirin.

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

Ve imleçten önce fazladan bir boşluk istiyorsanız:

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

İlginç ve benzersiz bir çözüm olduğu için +1.
ArtOfWarfare

4

Windows, yalnızca Linux'un diğer eski özellikleri arasında boru hattına izin veren Windows PowerShell ile birlikte gelir.

Başlat düğmesini tıklatarak ve size üç seçenek sunan PowerShell'i girerek başlayabilirsiniz. PowerShell'i tıklayın. Pencere başlık çubuğuna sağ tıklayın ve Özellikler'i seçin. Açılan pencerede görünüm ve davranış ayarlarını yapılandırırsınız.

Aksi halde, ilk olarak PowerShell'i açmak yerine, PowerShell modüllerini seçip tıklayın.

Yapabilecekleriniz için Microsoft belgelerine bakın:

Not: Konsol uygulamaları geliştirirseniz klasik kabuğu tavsiye etmem.


Başka bir iyi cevap için +1. Özellikle "Klasik Kabuk" terimini seviyorum.
Randolf Richardson

1
Borular CMD.EXE'de de var ve klasik olarak unix'te olduğu gibi aynı şekilde çalışıyor. NT'nin ilk halka açık beta sürümlerinden CMD sözdiziminin bir parçası olmuşlar ve ayrıca DOS üzerindeki COMMAND.COM'un komut sözdiziminin bir parçası olmuşlardı.
RBerteig

1
Komut kabuğu boruları, * nix kabuk boruları ve powershell boruları arasındaki büyük fark, powershell borularının dizeleri değil nesneleri geçirmesidir. Bu bir oyun değiştirici imo.
EBGreen

PowerShell'in soruyla ne ilgisi var?
Synetech

1
@ Syntech inc. - Doğrudan bir şey yok. Ancak dolaylı olarak, bir profil ayarı ile ayarlanabilen özelleştirilebilir bir bilgi istemi sağlayarak sorunun amacını karşılayan cmd.exe aracını kullanmak bir alternatiftir.
EBGreen

1

Kesin yöntem:

setx prompt ""

Bütün kullanıcılar için:

setx prompt "" /M

Stiliyle özelleştirilebilir bilgi istemi örneği:

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"
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.