Jak mogę na stałe dostosować wiersz polecenia w systemie Windows 7?

74

Chciałbym zmienić monit na $p$g$_$ftrwale, ale resetuje się on za każdym razem, gdy ponownie otwieram okno poleceń.

Jak mogę sprawić, że pozostanie taki sam na zawsze?

kretyna oscylacyjna
źródło
9
To interesujące pytanie (+1), ponieważ w dzisiejszych czasach niewiele osób wie, że ich monit DOS można dostosować.
Randolf Richardson,
14
Czy nie są to teraz tak zwane monity poleceń?
LarsTech
3
@ LaRsTech: Tak, DOS już dawno nie ma.
grawity
7
Stare zwyczaje! Zawsze będzie to dla mnie monit DOS.
oscilatingcretin
2
@Randolf: Na pewno nie wiedziałem! Zasłużony +1 do tego pytania.
jprete,

Odpowiedzi:

65

Utwórz nową zmienną środowiskową o nazwie PROMPT. Ustaw wartość zmiennej na żądany monit.

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

John T.
źródło
2
+1 Za bycie jedyną odpowiedzią, która wspomina o ważnej rzeczy w pierwszym zdaniu. Gdy wiadomo, że monit wydawany przez interpreter poleceń jest kontrolowany przez zmienną środowiskową, reszta przechodzi w proste ćwiczenie polegające na zastosowaniu ogólnej odpowiedzi SuperUser na temat zmiennych środowiskowych .
JdeBP,
W rzeczywistości nie jest to jedyna odpowiedź, która wspomina o utworzeniu zmiennej PROMPT - moja odpowiedź wspomina również o tym w kroku 4, który brzmi: 4. Utwórz zmienną o nazwie „PROMPT” i wstaw żądany tekst zachęty (...)
Randolf Richardson,
2
Technicznie moja odpowiedź wymienia również zmienną Monit, ponieważ zawiera polecenie jej ustawienia. :)
EBGreen,
4
EBGreen i Randolf Richardson, a co z „ w pierwszym zdaniu ” ucieka wam dwoje?
JdeBP
71

W wierszu polecenia wpisz:

setx Prompt $p$g$_$f

Następnie ponownie otwórz wiersz polecenia.

Dla każdego, kto nie wie, jak uzyskać pomoc dotyczącą poleceń DOS / CMD, wpisz:

setx /?

Aby uzyskać:

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
źródło
1
Też tego próbowałem i działało idealnie. Musiałem jednak zaznaczyć odpowiedź drugiego faceta, chociaż twój był bardziej bezpośredni i konkretny. Był pierwszy, więc musiałem postępować właściwie. Ale głosowałem cię.
oscilatingcretin
30
Nie obchodzi mnie, kto zostanie oznaczony jako odpowiedź. Zwrócę jednak uwagę na przyszłe odniesienia (zostaw to tak, jak w tym przypadku), że kluczową decyzją dotyczącą zaznaczenia odpowiedzi nie jest to, kto odpowiedział jako pierwszy, to odpowiedź, która jest najlepsza. Chociaż prawdą jest, że zaznaczenie odpowiedzi jest dobre, ponieważ daje powtórzenie, prawdziwym powodem zaznaczenia odpowiedzi jest pomoc osobom, które znajdą to pytanie później, w szybszym znalezieniu najlepszego rozwiązania. Ponieważ w tym konkretnym przypadku nie ma nic złego w innym rozwiązaniu, nie ma to znaczenia.
EBGreen,
1
Szczególnie podoba mi się ta odpowiedź (+1), ponieważ pokazuje, że istnieje więcej niż jeden sposób na zrobienie tego samego ( coś, co jest szczególnie podkreślone w Perlu [programowanie] ).
Randolf Richardson,
3
Zgadzam się, że nie chodzi o pierwszą odpowiedź. Obaj odpowiedzieli na moje podstawowe pytanie, jak trwale zmienić monit. Kiedy dwie osoby osiągną to samo, awaria polega na użyciu pierwszej odpowiedzi. Twój był krótki i konkretny, odnosząc się do problemu bez kości, podczas gdy jego podejście było bardziej skomplikowane, przeskakujące przez interfejs użytkownika, które ujawniło więcej opcji dotyczących zmiennych środowiskowych. Przed wybraniem odpowiedzi dokładnie zastanowiłem się nad opcjami.
oscilatingcretin
2
Byłoby wspaniale poszerzyć swoją odpowiedź. Obecnie brakuje mu kontekstu. Zapoznaj się z naszym krótkim przewodnikiem Jak odpowiedzieć, aby dowiedzieć się, jak poprawić swoją odpowiedź. Więc co setxdokładnie robi i dlaczego ciągle się resetuje?
Tamara Wijsman,
21

Aby zmienić wygląd DOS-a (lub „Wiersza polecenia”), kliknij prawym przyciskiem myszy „Komputer” (zwykle na pulpicie systemu Windows lub w menu Start systemu Windows), a następnie wykonaj następujące kroki:

  1. Kliknij etykietę „Zaawansowane ustawienia systemu”
  2. Kliknij przycisk „Zmienne środowiskowe ...”
  3. Kliknij przycisk „Nowy ...” („Zmienna użytkownika” wpływa tylko na Ciebie, a „Zmienne systemowe” wpływają na wszystkich użytkowników)
  4. Utwórz zmienną o nazwie „PROMPT” i wstaw żądany tekst zachęty (tak jak dla ciebie w ostatnim zdjęciu poniżej)
  5. Kliknij przycisk „OK”, aby zamknąć okno „Zmienne środowiskowe”
  6. Kliknij przycisk „OK”, aby zamknąć okno „Właściwości systemu”

Ta zmiana przetrwa także ponowne uruchomienie.

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

Randolf Richardson
źródło
2
Uwielbiam to, jak zaznaczyłeś, gdzie kliknąć na każdym obrazie. Jak to osiągnąłeś?
Konerak,
4
@Konerak: Dzięki! Otworzyłem każde okno, nacisnąłem Alt-PrintScreen (aby skopiować bieżące aktywne okno do Clip Board), a następnie wkleiłem je do Adobe Photoshop. Następnie utworzyłem warstwę na (lub przed) obrazem, wypełniłem ją 100% czarną, zmieniłem krycie warstwy na 25% (co pozwala na zanikanie obrazu na poziomie 75%), a następnie użył Prostokątnego narzędzia markizy z „piórkiem 3px”, aby zaznaczyć obszar do podświetlenia, i nacisnąłem klawisz Delete (aby usunąć z tej czarnej warstwy). Następnie zapisałem obraz jako plik .PNG w moim katalogu C: / Temp / i przesłałem go tutaj.
Randolf Richardson,
1
Jestem kompletnym noobem Photoshopa, ale widzę, o czym mówisz! Spróbuję to następnym razem, gdy przedstawię naszą aplikację naszym użytkownikom - znacznie ładniej niż czerwone linie MS Paint na całym ekranie. Dzięki!
Konerak,
Snagit kosztuje mniej niż Photoshop i daje również wiele opcji do pracy z istotami ekranowymi. To moje ulubione robienie zrzutów ekranu.
EBGreen
Wybitny za wyjaśnienie, jak dostać się do zmiennych środowiskowych w systemie Windows 7 oraz za wyjaśnienie, jak wyróżnić obraz. Przydatne maniaki tutaj!
CigarDoug
5

Edytuj polecenie menu lub łącze, które uruchamia wiersz polecenia, zmień jego cel, np.

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

A jeśli chcesz uzyskać dodatkowe miejsce przed kursorem:

%SystemRoot%\system32\cmd.exe /K "prompt $p$g$_$f "
JJ Okie
źródło
+1 za bycie interesującym i unikalnym rozwiązaniem.
ArtOfWarfare
4

System Windows jest dostarczany z programem Windows PowerShell, który umożliwia potokowanie między innymi poprzednimi funkcjami tylko dla systemu Linux.

Możesz go uruchomić, klikając przycisk Start i wchodząc w PowerShell, co daje trzy opcje. Kliknij PowerShell. Kliknij prawym przyciskiem myszy pasek tytułu okna i wybierz Właściwości. W oknie otwierającym konfigurujesz ustawienia widoku i zachowania.

W przeciwnym razie zamiast otwierać PowerShell w pierwszej kolejności wybierz i kliknij Moduły PowerShell.

Zobacz dokumentację Microsoft, aby dowiedzieć się, co możesz zrobić:

PS: Nie poleciłbym klasycznej powłoki, jeśli tworzysz aplikacje konsolowe.

Lorenz Lo Sauer
źródło
+1 za kolejną dobrą odpowiedź. Szczególnie podoba mi się termin „Klasyczna powłoka”.
Randolf Richardson,
1
Rury istnieją również w CMD.EXE i działają prawie tak samo, jak klasycznie na Uniksie. Były częścią składni CMD od najwcześniejszych publicznych wersji beta NT, a także były częścią składni poleceń COMMAND.COM na DOS.
RBerteig,
1
Ogromna różnica między potokami powłoki poleceń, potokami * nix powłoki i potokami PowerShell polega na tym, że potoki PowerShell przekazują obiekty, a nie ciągi znaków. To jest zmieniarka gier imo.
EBGreen,
Co PowerShell ma wspólnego z tym pytaniem?
Synetech,
1
@Syntech inc. - Nic bezpośrednio. Pośrednio jednak jest to alternatywa dla używania cmd.exe, który spełniałby cel pytania, zapewniając dostosowywalne monity, które można ustawić za pomocą ustawienia profilu.
EBGreen
1

Ostateczna metoda:

setx prompt ""

Dla wszystkich użytkowników:

setx prompt "" /M

Przykład szybkiego dostosowywania ze stylem:

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
źródło