Bagaimana saya bisa secara kustom menyesuaikan Prompt Perintah di Windows 7?

74

Saya ingin mengubah prompt untuk $p$g$_$fsecara permanen, tetapi itu me-reset sendiri setiap kali saya membuka kembali jendela perintah.

Bagaimana saya bisa membuatnya tetap sama selamanya untuk selamanya?

ocilatingcretin
sumber
9
Ini adalah pertanyaan yang menarik (+1) karena saat ini tidak banyak orang yang tahu bahwa DOS prompt mereka dapat dikustomisasi.
Randolf Richardson
14
Bukankah ini disebut Perintah meminta sekarang?
LarsTech
3
@ LaRsTech: Ya, DOS sudah lama hilang.
grawity
7
Kebiasaan lama! Itu akan selalu menjadi DOS prompt kepada saya.
oscilatingcretin
2
@ Randolf: Saya tentu tidak tahu! +1 memang layak untuk pertanyaan ini.
jprete

Jawaban:

65

Buat variabel lingkungan baru yang disebut PROMPT. Setel nilai variabel ke prompt yang diinginkan.

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

John T
sumber
2
+1 Untuk menjadi satu-satunya jawaban yang menyebutkan hal penting dalam kalimat pertama. Begitu orang tahu bahwa prompt yang dikeluarkan oleh penerjemah perintah dikendalikan oleh variabel lingkungan, sisanya beralih ke latihan sederhana dalam menerapkan jawaban SuperUser umum tentang variabel lingkungan .
JdeBP
Sebenarnya, ini bukan satu-satunya jawaban untuk menyebutkan pembuatan variabel PROMPT - jawaban saya juga menyebutkan ini pada langkah 4, yang berbunyi: 4. Buat variabel yang disebut "PROMPT" dan masukkan teks prompt yang Anda inginkan (...)
Randolf Richardson
2
Secara teknis jawaban saya menyebutkan variabel Prompt juga karena memberikan perintah untuk mengaturnya. :)
EBGreen
4
EBGreen dan Randolf Richardson, bagaimana dengan " dalam kalimat pertama " yang lolos dari kalian berdua?
JdeBP
71

Pada prompt perintah ketik:

setx Prompt $p$g$_$f

Kemudian buka kembali command prompt.

Bagi siapa pun yang tidak tahu cara mendapatkan bantuan untuk perintah DOS / CMD, ketik:

setx /?

Mendapatkan:

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
sumber
1
Saya mencoba ini juga, dan itu berhasil dengan sempurna. Saya harus menandai orang lain sebagai jawabannya, meskipun jawaban Anda lebih jujur. Yang pertama, jadi saya harus melakukan apa yang benar. Namun saya membesarkan hati Anda.
oscilatingcretin
30
Saya tidak terlalu peduli siapa yang ditandai sebagai jawabannya. Saya akan menunjukkan referensi di masa depan (biarkan saja seperti ini) bahwa keputusan kunci untuk menandai jawaban adalah bukan siapa yang menjawab pertama, tetapi jawaban mana yang terbaik. Memang benar bahwa menandai jawaban itu baik karena memberikan jawaban, alasan sebenarnya untuk menandai jawaban itu adalah untuk membantu orang yang menemukan pertanyaan ini nantinya untuk lebih cepat menemukan solusi terbaik. Karena tidak ada yang salah dengan solusi lain dalam kasus khusus ini, itu tidak masalah.
EBGreen
1
Saya sangat suka jawaban ini (+1) karena itu menunjukkan bahwa ada lebih dari satu cara untuk melakukan hal yang sama ( sesuatu yang sangat ditekankan dengan Perl [pemrograman] ).
Randolf Richardson
3
Saya setuju bahwa ini bukan tentang jawaban pertama. Anda berdua menjawab pertanyaan dasar saya tentang cara mengubah prompt secara permanen. Ketika dua orang mencapai hal yang sama, yang mundur adalah menggunakan jawaban pertama. Milik Anda singkat dan to the point, membahas masalah tulang kosong, sementara itu adalah pendekatan UI-melompat yang lebih rumit yang mengekspos lebih banyak pilihan mengenai variabel lingkungan. Saya menimbang pilihan dengan cermat sebelum memilih jawabannya.
oscilatingcretin
2
Akan bagus untuk memperluas jawaban Anda. Saat ini konteksnya kurang. Silakan lihat panduan singkat Cara Menjawab kami untuk melihat bagaimana Anda dapat membuat jawaban Anda lebih baik. Jadi, apa yang setxsebenarnya dilakukan dan mengapa itu terus mereset sendiri?
Tamara Wijsman
21

Untuk mengubah tampilan DOS Prompt Anda (atau "Command Prompt"), klik kanan pada "Computer" (biasanya di Desktop Windows Anda atau di Windows Start Menu), kemudian ikuti langkah-langkah ini:

  1. Klik label "Pengaturan sistem lanjut"
  2. Klik tombol "Variabel Lingkungan ..."
  3. Klik tombol "Baru ..." ("Variabel pengguna" hanya mempengaruhi Anda, dan "Variabel sistem" mempengaruhi semua pengguna)
  4. Buat variabel yang disebut "PROMPT" dan masukkan teks prompt yang Anda inginkan (seperti yang saya sertakan untuk Anda dalam gambar terakhir di bawah)
  5. Klik tombol "OK" untuk menutup jendela "Variabel Lingkungan"
  6. Klik tombol "OK" untuk menutup jendela "System Properties"

Perubahan ini juga akan selamat dari reboot.

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

Randolf Richardson
sumber
2
Saya suka bagaimana Anda menyoroti tempat untuk mengklik di setiap gambar. Bagaimana Anda mencapai ini?
Konerak
4
@Konerak: Terima kasih! Saya membuka setiap jendela, menekan Alt-PrintScreen (untuk menyalin di jendela aktif saat ini ke Clip Board), lalu menempelkannya ke Adobe Photoshop. Setelah itu, saya membuat layer di atas (atau di depan) gambar, mengisinya dengan 100% hitam, mengubah opacity layer menjadi 25% (yang memungkinkan gambar memudar pada level 75%), lalu saya menggunakan Rectangular Marquee Tool dengan "bulu 3px" untuk memilih area yang akan disorot dan menekan tombol Delete (untuk menghapus dari lapisan hitam ini). Setelah itu, saya menyimpan gambar sebagai file .PNG di direktori C: / Temp / dan mengunggahnya di sini.
Randolf Richardson
1
Saya noob photoshop lengkap, tapi saya mengerti apa yang Anda bicarakan! Saya akan mencoba ini lain kali saat saya mempresentasikan aplikasi kami kepada pengguna kami - jauh lebih bagus daripada MS Paint garis merah di seluruh layar. Terima kasih!
Konerak
Snagit lebih murah daripada Photoshop dan memberi Anda banyak opsi untuk bekerja dengan fitur layar juga. Ini adalah favorit saya untuk melakukan screen cap.
EBGreen
Terpilih untuk menjelaskan cara membuka Variabel Lingkungan di Windows 7, dan untuk menjelaskan cara menyorot gambar. Barang geek yang berguna, di sini!
CigarDoug
5

Edit perintah menu atau tautan yang memulai prompt perintah, ubah target mis.

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

Dan jika menginginkan ruang ekstra sebelum kursor:

%SystemRoot%\system32\cmd.exe /K "prompt $p$g$_$f "
JJ Okie
sumber
+1 untuk menjadi solusi yang menarik dan unik.
ArtOfWarfare
4

Windows hadir dengan Windows PowerShell yang memungkinkan pipelining di antara fitur-fitur yang sebelumnya hanya menggunakan Linux.

Anda dapat memulainya dengan mengklik tombol Start dan memasuki PowerShell, yang memberi Anda tiga opsi. Klik PowerShell. Klik kanan pada bilah judul jendela dan pilih Properti. Di jendela pembuka, Anda mengonfigurasi pengaturan tampilan dan perilaku.

Jika tidak, bukannya membuka PowerShell di tempat pertama pilih dan klik modul PowerShell.

Lihat dokumentasi Microsoft untuk apa yang dapat Anda lakukan:

PS: Saya tidak akan merekomendasikan shell klasik jika Anda mengembangkan aplikasi konsol.

Lorenz Lo Sauer
sumber
+1 untuk Jawaban baik lainnya. Saya khususnya menyukai istilah "Shell Klasik."
Randolf Richardson
1
Pipa ada di CMD.EXE juga, dan berfungsi hampir sama seperti yang mereka lakukan pada unix. Mereka telah menjadi bagian dari sintaks CMD dari rilis beta publik paling awal dari NT, dan juga bagian dari sintaks perintah COMMAND.COM pada DOS.
RBerteig
1
Perbedaan besar antara pipa shell perintah, pipa shell * nix, dan pipa powershell adalah bahwa pipa powershell melewati objek bukan string. Ini adalah game changer imo.
EBGreen
Apa hubungan PowerShell dengan pertanyaan itu?
Synetech
1
@Syntech inc. - Tidak ada yang langsung. Namun secara tidak langsung itu adalah alternatif untuk menggunakan cmd.exe yang akan memenuhi maksud pertanyaan dengan memberikan prompt yang dapat disesuaikan yang dapat diatur melalui pengaturan profil.
EBGreen
1

Metode definitif:

setx prompt ""

Untuk semua pengguna:

setx prompt "" /M

Contoh prompt yang dapat disesuaikan, dengan gaya:

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
sumber