ฉันจะกำหนด Command Prompt อย่างถาวรใน Windows 7 ได้อย่างไร


74

ฉันต้องการเปลี่ยนพรอมต์ให้$p$g$_$fเป็นการถาวร แต่จะรีเซ็ตตัวเองทุกครั้งที่ฉันเปิดหน้าต่างคำสั่งอีกครั้ง

ฉันจะทำให้มันคงเดิมตลอดไปชั่วนิรันดร์ได้อย่างไร


9
นี่เป็นคำถามที่น่าสนใจ (+1) เพราะวันนี้มีคนไม่มากที่รู้ว่าสามารถปรับแต่ง DOS ได้
Randolf Richardson

14
ตอนนี้สิ่งเหล่านี้เรียกว่าพรอมต์หรือไม่
LarsTech

3
@ La- rsTech: ใช่ DOS หายไปนานแล้ว
grawity

7
นิสัยเก่า! มันจะเป็น DOS พร้อมท์สำหรับฉันเสมอ
oscilatingcretin

2
@ Randolf: ฉันไม่รู้อย่างแน่นอน! สมควรได้รับ +1 สำหรับคำถามนี้
jprete

คำตอบ:


65

สร้างตัวแปรสภาพแวดล้อมใหม่ที่เรียกว่า PROMPT ตั้งค่าตัวแปรเป็นพรอมต์ที่ต้องการ

ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่


2
+1 สำหรับการเป็นคำตอบเดียวที่พูดถึงสิ่งสำคัญในประโยคแรก เมื่อใครรู้ว่าพรอมต์ที่ออกโดยล่ามคำสั่งจะถูกควบคุมโดยตัวแปรสภาพแวดล้อมที่เหลือ devolves เป็นออกกำลังกายที่ง่ายในการใช้คำตอบที่ SuperUser ทั่วไปเกี่ยวกับตัวแปรสภาพแวดล้อม
JdeBP

ที่จริงแล้วนี่ไม่ใช่คำตอบเดียวที่พูดถึงการสร้างตัวแปร PROMPT - คำตอบของฉันยังกล่าวถึงในขั้นตอนที่ 4 ซึ่งอ่านได้: 4. สร้างตัวแปรที่เรียกว่า "PROMPT" และแทรกข้อความพร้อมท์ที่คุณต้องการ (... )
Randolf Richardson

2
ในทางเทคนิคแล้วคำตอบของฉันพูดถึงตัวแปร Prompt เช่นกันเนื่องจากมันมีคำสั่งให้ตั้ง :)
EBGreen

4
EBGreen และ Randolf Richardson แล้ว " ในประโยคแรก " จะหนีคุณสองคนได้อย่างไร
JdeBP

71

ที่พรอมต์คำสั่งพิมพ์:

setx Prompt $p$g$_$f

จากนั้นเปิดพรอมต์คำสั่งอีกครั้ง

สำหรับผู้ที่ไม่ทราบวิธีขอความช่วยเหลือสำหรับคำสั่ง DOS / CMD ให้พิมพ์:

setx /?

ที่จะได้รับ:

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
ฉันลองสิ่งนี้เช่นกันและมันก็ทำงานได้อย่างสมบูรณ์ ฉันต้องทำเครื่องหมายผู้ชายคนอื่นว่าเป็นคำตอบแม้ว่าคุณจะตรงและตรงประเด็นกว่าก็ตาม เขาเป็นคนแรกดังนั้นฉันต้องทำสิ่งที่ถูกต้อง ฉันยกระดับคุณแม้ว่า
oscilatingcretin

30
ฉันไม่สนใจจริงๆว่าใครได้รับการทำเครื่องหมายว่าเป็นคำตอบ ฉันจะชี้ให้เห็นถึงการอ้างอิงในอนาคตแม้ว่า (ปล่อยให้มันเป็นอย่างนี้) ว่าการตัดสินใจที่สำคัญสำหรับการทำเครื่องหมายคำตอบไม่ใช่ใครตอบก่อนมันเป็นคำตอบที่ดีที่สุด ในขณะที่มันเป็นความจริงที่การทำเครื่องหมายคำตอบเป็นสิ่งที่ดีในการให้ตัวแทน แต่เหตุผลที่แท้จริงในการทำเครื่องหมายคำตอบคือเพื่อช่วยให้ผู้ที่พบคำถามนี้ในภายหลังเพื่อหาทางออกที่ดีที่สุดได้เร็วขึ้น เนื่องจากไม่มีสิ่งใดผิดกับโซลูชันอื่นในกรณีนี้จึงไม่สำคัญ
EBGreen

1
ฉันชอบคำตอบนี้มากขึ้น (+1) เพราะมันแสดงให้เห็นว่ามีมากกว่าหนึ่งวิธีในการทำสิ่งเดียวกัน ( บางสิ่งที่เน้นโดยเฉพาะกับ Perl [การเขียนโปรแกรม] )
Randolf Richardson

3
ฉันยอมรับว่ามันไม่เกี่ยวกับคำตอบแรก คุณทั้งสองตอบคำถามพื้นฐานของฉันเกี่ยวกับวิธีการเปลี่ยนพรอมต์อย่างถาวร เมื่อคนสองคนบรรลุสิ่งเดียวกันการถอยกลับคือการใช้คำตอบแรก ของคุณสั้นและตรงประเด็นตอบปัญหากระดูกเปลือยในขณะที่วิธีการของเขานั้นซับซ้อนกว่า UI กระโดดที่เปิดเผยตัวเลือกเพิ่มเติมเกี่ยวกับตัวแปรสภาพแวดล้อม ฉันชั่งน้ำหนักตัวเลือกอย่างรอบคอบก่อนเลือกคำตอบ
oscilatingcretin

2
มันจะเป็นการดีถ้าคุณขยายคำตอบของคุณ ขณะนี้ยังไม่มีบริบท โปรดอ่านคู่มือวิธีการตอบสั้น ๆ ของเราเพื่อดูว่าคุณสามารถทำให้คำตอบดีขึ้นได้อย่างไร ดังนั้นจะsetxทำอะไรกันแน่และทำไมมันถึงทำการรีเซ็ตเอง
Tamara Wijsman

21

หากต้องการเปลี่ยนลักษณะที่ปรากฏของ DOS Prompt (หรือ "Command Prompt") ให้คลิกขวาที่ "Computer" (โดยปกติจะอยู่ที่ Windows Desktop หรือในเมนู Start ของ Windows) จากนั้นทำตามขั้นตอนต่อไปนี้:

  1. คลิกที่ป้ายกำกับ "การตั้งค่าระบบขั้นสูง"
  2. คลิกปุ่ม "ตัวแปรสภาพแวดล้อม ... "
  3. คลิกปุ่ม "ใหม่ ... " ("ตัวแปรผู้ใช้" มีผลกับคุณเท่านั้นและ "ตัวแปรระบบ" จะส่งผลต่อผู้ใช้ทั้งหมด)
  4. สร้างตัวแปรที่ชื่อว่า "PROMPT" และแทรกข้อความแจ้งที่คุณต้องการ (ดังที่ฉันได้รวมไว้ในรูปสุดท้ายด้านล่าง)
  5. คลิกปุ่ม "ตกลง" เพื่อปิดหน้าต่าง "ตัวแปรสภาพแวดล้อม"
  6. คลิกปุ่ม "ตกลง" เพื่อปิดหน้าต่าง "คุณสมบัติของระบบ"

การเปลี่ยนแปลงนี้จะสามารถอยู่รอดได้

ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่


2
ฉันชอบที่คุณไฮไลต์ตำแหน่งที่จะคลิกในแต่ละภาพ คุณบรรลุสิ่งนี้ได้อย่างไร
Konerak

4
@ Konerak: ขอบคุณ! ฉันเปิดแต่ละหน้าต่างกด Alt-PrintScreen (เพื่อคัดลอกบนหน้าต่างที่ใช้งานปัจจุบันไปยังคลิปบอร์ด) จากนั้นวางลงใน Adobe Photoshop หลังจากนั้นฉันสร้างเลเยอร์ที่ด้านบนของภาพ (หรือด้านหน้า) เติมด้วยสีดำ 100% เปลี่ยนความทึบของเลเยอร์เป็น 25% (ซึ่งทำให้ภาพจางหายไปในระดับ 75%) จากนั้นฉัน ใช้เครื่องมือสี่เหลี่ยมปะรำด้วย "ขน 3px" เพื่อเลือกพื้นที่เพื่อไฮไลต์และกดปุ่มลบ (เพื่อลบออกจากเลเยอร์สีดำ) หลังจากนั้นฉันบันทึกภาพเป็นไฟล์. PNG ในไดเรกทอรี C: / Temp / และอัปโหลดที่นี่
Randolf Richardson

1
ฉันเป็น photoshop noob แต่ฉันเห็นสิ่งที่คุณกำลังพูดถึง! ฉันจะลองอีกครั้งในครั้งต่อไปที่ฉันนำเสนอแอปพลิเคชันของเราต่อผู้ใช้ของเรา - ดีกว่า MS Red เส้นสีแดงทั่วหน้าจอ ขอบคุณ!
Konerak

Snagit มีค่าใช้จ่ายน้อยกว่าใน Photoshop และมีตัวเลือกมากมายสำหรับการทำงานกับหน้าจอ มันเป็นที่ชื่นชอบสำหรับการทำหน้าจอแคป
EBGreen

เพิ่มขึ้นเพื่ออธิบายวิธีไปที่ตัวแปรสภาพแวดล้อมใน Windows 7 และเพื่ออธิบายวิธีการเน้นภาพ สิ่งที่มีประโยชน์เกินบรรยายที่นี่!
CigarDoug

5

แก้ไขคำสั่งเมนูหรือลิงค์ที่เริ่มต้นพร้อมท์คำสั่งเปลี่ยนเป้าหมายเช่น

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

และหากต้องการพื้นที่เพิ่มเติมก่อนเคอร์เซอร์:

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

+1 สำหรับการเป็นโซลูชันที่น่าสนใจและไม่เหมือนใคร
ArtOfWarfare

4

Windows มาพร้อมกับ Windows PowerShell ซึ่งอนุญาตให้ใช้ไพพ์ไลน์ในคุณสมบัติอื่น ๆ

คุณสามารถเริ่มได้โดยคลิกที่ปุ่มเริ่มและเข้าสู่ PowerShell ซึ่งมีตัวเลือกสามตัวเลือก คลิก PowerShell คลิกขวาที่แถบหัวเรื่องหน้าต่างและเลือกคุณสมบัติ ในหน้าต่างเปิดที่คุณกำหนดค่าการตั้งค่ามุมมองและพฤติกรรม

มิฉะนั้นแทนที่จะเปิด PowerShell ในสถานที่แรกให้เลือกและคลิกโมดูล PowerShell

ดูเอกสารของ Microsoft สำหรับสิ่งที่คุณสามารถทำได้:

PS: ฉันจะไม่แนะนำ Classic shell ถ้าคุณพัฒนาแอพพลิเคชั่นคอนโซล


+1 สำหรับคำตอบที่ดีอื่น ฉันชอบคำว่า "Classical Shell" โดยเฉพาะ
Randolf Richardson

1
ท่อมีอยู่ใน CMD.EXE เช่นกันและทำงานได้ดีเหมือนกับที่ใช้กับยูนิกซ์ พวกเขาเป็นส่วนหนึ่งของไวยากรณ์ CMD จากรุ่นเบต้าสาธารณะรุ่นแรกสุดของ NT และยังเป็นส่วนหนึ่งของไวยากรณ์คำสั่งของ COMMAND.COM บน DOS
RBerteig

1
ความแตกต่างอย่างมากระหว่างไพพ์เชลล์คำสั่ง, ไพพ์เชลล์ * nix และไพพ์พาวเวอร์เชลคือท่อพาวเวอร์เชลผ่านวัตถุที่ไม่ได้อยู่ในสตริง นี่คือตัวเปลี่ยนเกม
EBGreen

PowerShell เกี่ยวข้องกับคำถามนี้อย่างไร
Synetech

1
@Syntech inc - ไม่มีอะไรโดยตรง ทางตรงอย่างไรก็ตามเป็นทางเลือกในการใช้ cmd.exe ที่จะตอบสนองเจตนาของคำถามโดยการให้พร้อมท์ที่สามารถกำหนดเองได้ซึ่งสามารถตั้งค่าผ่านการตั้งค่าโปรไฟล์
EBGreen

1

วิธีการแตกหัก:

setx prompt ""

สำหรับผู้ใช้ทั้งหมด:

setx prompt "" /M

ตัวอย่างของการแจ้งให้ปรับแต่งพร้อมกับสไตล์:

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"
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.