Как изменить приглашение командной строки в windows


Загрузить PDF


Загрузить PDF

Команда строка Windows (command.exe) является полезным инструментом для выполнения различных административных задач. Приглашение командной строки – это короткая фраза или символ, отображаемый на экране, чтобы информировать пользователя о готовности программы принять команду. Эта статья расскажет вам, как изменить приглашение командной строки однократно и на постоянной основе.

  1. Изображение с названием Create a Custom Windows Command Prompt Step 1

    1

    Нажмите Windows + R.

  2. Изображение с названием Create a Custom Windows Command Prompt Step 2

    2

    Введите CMD и нажмите Enter.

  3. Изображение с названием Create a Custom Windows Command Prompt Step 3

    3

    Введите prompt и новый символ/фразу приглашения.

  4. Изображение с названием Create a Custom Windows Command Prompt Step 4

    4

    Новое приглашение отобразится на следующей строке. Обратите внимание, что новое приглашение будет сброшено при закрытии окна командной строки.

    Реклама

  1. Изображение с названием Create a Custom Windows Command Prompt Step 5

    1

    Щелкните правой кнопкой мыши по «Компьютер» и в меню выберите «Свойства».

  2. Изображение с названием Create a Custom Windows Command Prompt Step 6

    2

    Нажмите «Дополнительные параметры системы».

  3. Изображение с названием Create a Custom Windows Command Prompt Step 7

    3

    Нажмите «Переменные среды».

  4. Изображение с названием Create a Custom Windows Command Prompt Step 8

    4

    Нажмите «Создать» (в разделе «Пользовательские переменные»).

  5. Изображение с названием Create a Custom Windows Command Prompt Step 9

    5

    В строке «Имя» введите prompt.

  6. Изображение с названием Create a Custom Windows Command Prompt Step 10

    6

    В строке «Значение» введите новый символ/фразу приглашения.

  7. Изображение с названием Create a Custom Windows Command Prompt Step 11

    7

    Нажмите ОК.

    Реклама

Советы

Существуют специальные последовательности символов, которые можно использовать для отображения различных переменных. Команда prompt /? выводит список этих специальных символов. Переменные среды также могут использоваться в строке приглашения, используя стандартный формат %variablename%.

По умолчанию приглашением является «$P$G», что означает «Показывать букву диска и путь ($P), за которым следует «>»($ G)», например, C:\Windows>. Ниже приводится список специальных символов.

$A & (Амперсанд)
$B | (вертикальная черта)
$C ( (левая скобка)
$D Текущая дата
$E Код выхода (ASCII код 27)
$F ) (правая скобка)
$G > (знак «больше»)
$H Backspace (стирает предыдущий символ)
$L < (знак «меньше»)
$N Текущий диск
$P Текущий диск и путь
$Q = (знак «равно»)
$S (пробел)
$T Текущее время
$V Номер версии Windows
$_ Возврат каретки
$$ $ (Знак доллара)

Если включены командные расширения, командная строка поддерживает следующие дополнительные символы форматирования:
$+ Нуль или дополнительные знаки «плюс» (+) в зависимости от размера стека PUSHD (один символ для каждого уровня).
$M Отображение удаленного имени, связанного с буквой текущего диска или пустой строкой (если текущий диск не является сетевым).

Реклама

Предупреждения

  • Не вводите набор случайных символов в командной строке. Командная строка является мощным инструментом, который может внести необратимые изменения в систему или даже удалить все данные на вашем компьютере!

Реклама

Об этой статье

Эту страницу просматривали 13 418 раз.

Была ли эта статья полезной?

Another possibility is to set the PROMPT environment variable (which in fact is what the PROMPT command does).

The advantage of this method is that you can easily set it system-wide and you don’t need any scripts, edit the Windows Registry, etc. It will work for any console window no matter how you open it.

You can do it using two methods, GUI and command-line.

1. GUI method

Simply press Win + Pause/Break (open System properties), click Advanced system settings, Environment variables and create a new user or system variable named PROMPT with the value set to whatever you want your prompt to look like. A system variable will set it for all users.

You can see it with pictures in this article.

2. Command-line method

Another way to set the PROMPT environment variable permanently is to use the SETX command:

setx PROMPT <your-prompt-format>

If you want to set it for all users, just add the /M switch:

setx PROMPT /M <your-prompt-format>

3. Registry method

In fact, both previous methods just create a string value named PROMPT in the registry. For the current user, it’s under the key HKEY_CURRENT_USER\Environment, and the system-wide one for all users under the key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment.


Check this page or other answers for details about the prompt format.

Note: it’s possible that you will have to reboot your system (or possibly just sign out and in) for the changes to take effect. At least, you have to close and restart the application (console), so it loads the new or changed environment variable. If you can’t do it for whatever reason, you can use the following method:

4. Command-line method (temporary)

If you execute the PROMPT command, it will set the PROMPT environment variable in your local context, so it will take an effect immediately, but until the console is closed only. It’s not stored permanently.

prompt <your-prompt-format>

  • Описание команды prompt
  • Формат командной строки prompt
  • Параметры командной строки prompt
  • Примеры использования prompt

Описание команды prompt

Команда prompt изменяет командную строку Cmd.exe, включая отображение любого текста, который вы хотите, например, имя текущего каталога, время и дату или номер версии Microsoft Windows. Если эта команда используется без параметров, эта команда сбрасывает командную строку до значения по умолчанию ($P$G), которое представляет собой текущую букву диска и каталог, за которыми следует символ «больше» (>).

Формат командной строки prompt

PROMPT [text]

Параметры командной строки prompt

text Задает текст и сведения, которые необходимо включить в командную строку. В тексте можно использовать значение переменных окружения.
Командная строка может включать обычные символы и следующие специальные коды:

  • $A — & (амперсанд)
  • $B — | (вертикальная черта)
  • $C — ( (левая круглая скобка)
  • $D — Текущая дата
  • $E — Символ ASCII с кодом 27
  • $F — ) (правая круглая скобка)
  • $G — > (знак «больше»)
  • $H — BACKSPACE (удаление предыдущего символа)
  • $L — < (знак «меньше»)
  • $N — Текущий диск
  • $P — Текущие диск и путь
  • $Q — = (знак равенства)
  • $S — (пробел)
  • $T — Текущее время
  • $V — Номер версии Windows
  • $_ — Возврат каретки и перевод строки
  • $$ — $ (символ доллара)

Когда расширенная обработка команд включена, команда PROMPT поддерживает следующие дополнительные символы форматирования:

  • $+ — Отображение нужного числа знаков плюс (+) в зависимости от текущей глубины стека каталогов PUSHD, по одному знаку на каждый сохраненный путь.
  • $M — Отображение полного имени удаленного диска, связанного с именем текущего диска, или пустой строки, если текущий диск не является сетевым.

Если включить $p символ в текстовый параметр, диск считывается после ввода каждой команды (для определения текущего диска и пути). Это может занять некоторое время, особенно для дисководов гибких дисков.

/? Отображение справки в командной строке.

Примеры использования prompt

prompt $d$s$s$t$_$g Установит двухстрочную командную строку с текущим временем и датой в первой строке и знаком «больше» в следующей строке.

prompt —$g Настроит командную строку для вывода в виде стрелки (—>).

prompt $p$g Вручную изменит командную строку на значение по умолчанию (текущий диск и путь, за которым следует знак «больше»), аналогично использованию команды prompt без параметров.

prompt %computername% $P$G Перед стандартным приглашением будет отображаться имя компьютера.

prompt $V$S$C%computername%$F $P$G Отображение номера версии Windows с выводом имени компьютера заключено в скобки.

PowerShell Prompt

In case someone is looking for a more sophisticated answer, here’s my PowerShell v7 prompt that I have developed over the course of a year. To put it into context, it’s part of my personal PowerShell profile:

https://github.com/StefanGreve/profile

Disclaimer

The easiest way to get a fancy PowerShell prompt up and running is to use established solutions created by the pwsh community, so if you just need something that works with few lines of code to write on your end, you might want to take a look at this project:

https://github.com/dahlbyk/posh-git

However, if you are like me and want to write your own custom prompt from scratch, then the code snippets below might be able to give you some ideas on how to approach this problem.

Custom Prompt

I will break down the most important pieces here. To start things of, I added the necessary code to determine the current platform we are on (since some bits are OS-specific and I also use this function on Unix-based operating systems):

enum OS
{
    Unknown = 0
    Windows = 1
    Linux = 2
    MacOS = 3
}

# I map these booleans to an Enum so that I can switch over them
$global:OperatingSystem = if ([OperatingSystem]::IsWindows()) {
    [OS]::Windows
} elseif ([OperatingSystem]::IsLinux()) {
    [OS]::Linux
} elseif ([OperatingSystem]::IsMacOS()) {
    [OS]::MacOS
} else {
    [OS]::Unknown
}

# In the prompt function below this is used to toggle the leading char ('>' or '#') to indicate elevated privilages
if ([OperatingSystem]::IsWindows()) {
    $global:IsAdmin = ([Principal.WindowsPrincipal][Principal.WindowsIdentity]::GetCurrent()).IsInRole([Principal.WindowsBuiltInRole]::Administrator)
}

if ([OperatingSystem]::IsLinux()) {
    $global:IsAdmin = $(id -u) -eq 0
}
# Required for Python if you want to set the venv indicator in the terminal yourself, else skip this part
$env:VIRTUAL_ENV_DISABLE_PROMPT = 1
# Returns the execution time of the last command you ran, or 0 on init
function Get-ExecutionTime {
    $History = Get-History
    $ExecTime = $History ? ($History[-1].EndExecutionTime - $History[-1].StartExecutionTime) : (New-TimeSpan)
    Write-Output $ExecTime
}

After the build up, we can continue to dive into the actual prompt function:

function prompt {
    $ExecTime = Get-ExecutionTime

    # Only show the current branch if we are inside a Git repository. Notice that the Git command writes to stderr if we are not inside a Git repository
    $Branch = if ($(git rev-parse --is-inside-work-tree 2>&1) -eq $true) {
          # If you version of git doesn't support the --show-current flag yet, use this command instead:
          # git rev-parse --abbrev-ref HEAD
          # It's less readable so I opted for the more modern approach but you may want to use the command above if using the latest versions of programs isn't your thing
          [string]::Format(" {0}({1}){2}", $PSStyle.Foreground.Blue, $(git branch --show-current), $PSStyle.Foreground.White)
    }

    # You can delete this part if you don't use Python, it is used to indicate whether a virtual environment is active
    $Venv = if ($env:VIRTUAL_ENV) {
        [string]::Format(" {0}({1}){2}", $PSStyle.Foreground.Magenta, [Path]::GetFileName($env:VIRTUAL_ENV), $PSStyle.Foreground.White)
    }

    $Computer = switch ($global:OperatingSystem) {
        ([OS]::Windows) {
            [PSCustomObject]@{
                UserName = $env:USERNAME
                HostName = $env:COMPUTERNAME
            }
        }
        ([OS]::Linux) {
            [PSCustomObject]@{
                UserName = $env:USER
                HostName = hostname
            }
        }
        ([OS]::MacOS) {
            # I don't have a Mac so I cannot guarantee that this bit works, but in theory it should do the trick based on what I found online
            [PSCustomObject]@{
                UserName = id -un
                HostName = scutil --get ComputerName
            }
        }
    }

    return [System.Collections.ArrayList]@(
        "[",
        $PSStyle.Foreground.BrightCyan,
        $Computer.UserName,
        $PSStyle.Foreground.White,
        "@",
        $Computer.HostName,
        " ",
        $PSStyle.Foreground.Green,
        [DirectoryInfo]::new($ExecutionContext.SessionState.Path.CurrentLocation).BaseName,
        $PSStyle.Foreground.White,
        "]",
        " ",
        $PSStyle.Foreground.Yellow,
        "(",
        $ExecTime.Hours.ToString("D2"),
        ":",
        $ExecTime.Minutes.ToString("D2"),
        ":",
        $ExecTime.Seconds.ToString("D2"),
        ":",
        $ExecTime.Milliseconds.ToString("D3"),
        ")",
        $PSStyle.Foreground.White,
        $Branch,
        $Venv, # (you may want to remove this line, see remark above)
        "`n",
        [string]::new($global:IsAdmin ? "#" : ">", $NestedPromptLevel + 1),
        " "
    ) -join ""
}

  • Как изменить размер одной иконки на рабочем столе windows 10
  • Как изменить представление папок и файлов в окне ос windows
  • Как изменить размер значков на рабочем столе в windows 11 на ноутбуке
  • Как изменить размер одного ярлыка на рабочем столе windows 10
  • Как изменить порт rdp windows 10