Làm cách nào tôi có thể tùy chỉnh vĩnh viễn Command Prompt trong Windows 7?


74

Tôi muốn thay đổi lời nhắc thành $p$g$_$fvĩnh viễn, nhưng nó sẽ tự thiết lập lại mỗi khi tôi mở lại cửa sổ lệnh.

Làm thế nào tôi có thể có được nó để được mãi mãi mãi mãi?


9
Đây là một câu hỏi thú vị (+1) bởi vì ngày nay không có nhiều người biết rằng dấu nhắc DOS của họ có thể được tùy chỉnh.
Randolf Richardson

14
Bây giờ chúng không được gọi là Dấu nhắc lệnh?
LarsTech

3
@ La- rsTech: Vâng, DOS đã qua lâu rồi.
grawity

7
Thói quen cũ! Nó sẽ luôn là một dấu nhắc DOS với tôi.
oscilatingcretin

2
@Randolf: Tôi chắc chắn không biết! Rất xứng đáng +1 cho câu hỏi này.
jprete

Câu trả lời:


65

Tạo một biến môi trường mới gọi là PROMPT. Đặt giá trị biến cho dấu nhắc mong muốn.

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây


2
+1 Vì là câu trả lời duy nhất để đề cập đến điều quan trọng trong câu đầu tiên. Khi người ta biết rằng lời nhắc do trình thông dịch lệnh đưa ra được điều khiển bởi một biến môi trường, phần còn lại sẽ chuyển sang một bài tập đơn giản trong việc áp dụng câu trả lời SuperUser chung về các biến môi trường .
JdeBP

Trên thực tế, đây không phải là câu trả lời duy nhất để đề cập đến việc tạo biến PROMPT - câu trả lời của tôi cũng đề cập đến điều này trong bước 4, trong đó đọc: 4. Tạo một biến có tên là "PROMPT" và chèn văn bản nhắc nhở mong muốn của bạn (...)
Randolf Richardson

2
Về mặt kỹ thuật, câu trả lời của tôi cũng đề cập đến biến Prompt vì nó cung cấp lệnh để đặt nó. :)
EBGreen

4
EBGreen và Randolf Richardson, thế còn " trong câu đầu tiên " đang thoát khỏi hai bạn thì sao?
JdeBP

71

Tại dấu nhắc lệnh:

setx Prompt $p$g$_$f

Sau đó mở lại dấu nhắc lệnh.

Đối với bất kỳ ai không biết cách nhận trợ giúp cho các lệnh DOS / CMD, hãy nhập:

setx /?

Để có được:

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
Tôi cũng đã thử điều này, và nó hoạt động hoàn hảo. Mặc dù vậy, tôi phải đánh dấu câu trả lời của anh chàng kia, mặc dù câu trả lời của bạn thẳng thắn hơn. Đầu tiên của anh ấy, vì vậy tôi phải làm những gì đúng. Tôi ủng hộ bạn, mặc dù.
oscilatingcretin

30
Tôi không thực sự quan tâm ai được đánh dấu là câu trả lời. Tôi sẽ chỉ ra để tham khảo trong tương lai (mặc dù nó là như vậy) rằng quyết định quan trọng để đánh dấu một câu trả lời không phải là ai trả lời đầu tiên đó là câu trả lời nào là tốt nhất. Mặc dù đúng là đánh dấu câu trả lời là tốt ở chỗ nó cung cấp đại diện, lý do thực sự để đánh dấu câu trả lời là để giúp những người tìm thấy câu hỏi này sau đó nhanh chóng tìm ra giải pháp tốt nhất. Vì không có gì sai với giải pháp khác trong trường hợp cụ thể này, nó không thành vấn đề.
EBGreen

1
Tôi đặc biệt thích câu trả lời này (+1) bởi vì nó cho thấy rằng có nhiều hơn một cách để làm điều tương tự ( điều gì đó đặc biệt nhấn mạnh với Perl [lập trình] ).
Randolf Richardson

3
Tôi đồng ý rằng đó không phải là câu trả lời đầu tiên. Cả hai bạn đã trả lời câu hỏi cơ bản của tôi về cách thay đổi lời nhắc vĩnh viễn. Khi hai người đạt được điều tương tự, dự phòng là sử dụng câu trả lời đầu tiên. Của bạn là ngắn và đến thời điểm, giải quyết vấn đề xương sống, trong khi đó là một cách tiếp cận nhảy UI phức tạp hơn, bộc lộ nhiều lựa chọn hơn liên quan đến các biến môi trường. Tôi cân nhắc các lựa chọn cẩn thận trước khi chọn câu trả lời.
oscilatingcretin

2
Nó sẽ là tuyệt vời để mở rộng câu trả lời của bạn. Nó hiện đang thiếu bối cảnh. Vui lòng xem hướng dẫn Cách trả lời ngắn gọn của chúng tôi để xem làm thế nào bạn có thể làm cho câu trả lời của mình tốt hơn. Vì vậy, setxchính xác những gì làm và tại sao nó tiếp tục đặt lại chính nó?
Tamara Wijsman

21

Để thay đổi giao diện của Dấu nhắc DOS (hoặc "Dấu nhắc lệnh"), nhấp chuột phải vào "Máy tính" (thường trên Bàn làm việc Windows của bạn hoặc trong Menu Bắt đầu của Windows), sau đó làm theo các bước sau:

  1. Nhấp vào nhãn "Cài đặt hệ thống nâng cao"
  2. Nhấp vào nút "Biến môi trường ..."
  3. Nhấp vào nút "Mới ..." ("Biến người dùng" chỉ ảnh hưởng đến bạn và "Biến hệ thống" có hiệu lực cho tất cả người dùng)
  4. Tạo một biến có tên là "KHUYẾN MÃI" và chèn văn bản nhắc nhở mong muốn của bạn (như tôi đã đưa cho bạn vào hình ảnh cuối cùng bên dưới)
  5. Nhấp vào nút "OK" để đóng cửa sổ "Biến môi trường"
  6. Nhấp vào nút "OK" để đóng cửa sổ "Thuộc tính hệ thống"

Sự thay đổi này cũng sẽ tồn tại khi khởi động lại.

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây


2
Tôi thích cách bạn đánh dấu nơi nhấp vào trong mỗi hình ảnh. Làm thế nào bạn đạt được điều này?
Konerak

4
@Konerak: Cảm ơn! Tôi mở từng cửa sổ, nhấn Alt-PrintScreen (để sao chép trên cửa sổ đang hoạt động hiện tại vào Clip Board), sau đó dán nó vào Adobe Photoshop. Sau đó, tôi đã tạo một lớp ở trên cùng (hoặc phía trước) hình ảnh, lấp đầy nó với màu đen 100%, thay đổi độ mờ của lớp thành 25% (cho phép hình ảnh mờ dần ở mức 75%), sau đó tôi đã sử dụng Công cụ hình chữ nhật Marquee với "lông 3px" để chọn vùng cần tô sáng và nhấn phím Xoá (để xóa khỏi lớp màu đen này). Sau đó, tôi đã lưu hình ảnh dưới dạng tệp .PNG trong thư mục C: / Temp / của mình và tải nó lên đây.
Randolf Richardson

1
Tôi là một người hoàn toàn photoshop, nhưng tôi thấy những gì bạn đang nói về! Tôi sẽ thử điều này vào lần tới khi tôi trình bày ứng dụng của chúng tôi cho người dùng của chúng tôi - đẹp hơn nhiều so với các dòng màu đỏ của MS Paint trên toàn màn hình. Cảm ơn!
Konerak

Snagit có chi phí thấp hơn Photoshop và cung cấp cho bạn rất nhiều tùy chọn để làm việc với các cature màn hình. Đó là yêu thích của tôi để làm mũ màn hình.
EBGreen

Được khuyến khích giải thích cách truy cập Biến môi trường trong Windows 7 và giải thích cách làm nổi bật hình ảnh. Công cụ đam mê hữu ích, ở đây!
xì gà

5

Chỉnh sửa lệnh menu hoặc liên kết bắt đầu dấu nhắc lệnh, thay đổi mục tiêu của nó, vd.

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

Và nếu muốn có thêm một khoảng trống trước con trỏ:

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

+1 vì là một giải pháp thú vị và độc đáo.
ArtOfWarfare

4

Windows đi kèm với Windows PowerShell cho phép kết nối các tính năng trước đây chỉ dành cho Linux.

Bạn có thể khởi động nó bằng cách nhấp vào nút Bắt đầu và nhập PowerShell, cung cấp cho bạn ba tùy chọn. Nhấp vào PowerShell. Nhấp chuột phải vào thanh tiêu đề cửa sổ và chọn Thuộc tính. Trong cửa sổ mở, bạn định cấu hình cài đặt chế độ xem và hành vi.

Mặt khác, thay vì mở PowerShell ở vị trí đầu tiên, hãy chọn và nhấp vào các mô-đun PowerShell.

Xem tài liệu của Microsoft để biết bạn có thể làm gì:

PS: Tôi sẽ không đề xuất shell cổ điển nếu bạn phát triển các ứng dụng console.


+1 cho câu trả lời hay khác. Tôi đặc biệt thích thuật ngữ "Classical Shell."
Randolf Richardson

1
Các đường ống cũng tồn tại trong CMD.EXE và hoạt động khá giống như cách chúng thực hiện trên unix. Chúng đã là một phần của cú pháp CMD từ các bản phát hành beta công khai sớm nhất của NT và cũng là một phần của cú pháp lệnh của.COM.COM trên DOS.
RBerteig

1
Sự khác biệt rất lớn giữa các ống vỏ lệnh, ống vỏ * nix và ống powershell là các ống powershell đi qua các vật thể không phải là chuỗi. Đây là một thay đổi trò chơi imo.
EBGreen

PowerShell có liên quan gì đến câu hỏi?
Synetech

1
@Syntech inc. - Không có gì trực tiếp. Tuy nhiên, một cách gián tiếp, nó là một giải pháp thay thế cho việc sử dụng cmd.exe sẽ đáp ứng mục đích của câu hỏi bằng cách cung cấp một dấu nhắc có thể tùy chỉnh có thể được đặt thông qua cài đặt cấu hình.
EBGreen

1

Phương pháp dứt khoát:

setx prompt ""

Cho tất cả người dùng:

setx prompt "" /M

Ví dụ về tùy chỉnh nhanh chóng, với kiểu dáng:

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"
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.