【问题标题】:How do I change the command-line prompt in Windows?如何更改 Windows 中的命令行提示符?
【发布时间】:2012-08-15 05:38:25
【问题描述】:

如何将命令行提示符更改为控制台?

我一直在寻找console functions API,但找不到任何东西。

【问题讨论】:

  • 你的意思是编程吗?如果没有,只需在 cmd 窗口中使用prompt _identifier_
  • 我不想使用环境变量;如果可能的话,我只想通过它的 API 来做。
  • AFAIK 提示符不是控制台的属性,而是 cmd 解释器的属性
  • 命令解释器没有 API。更改提示的唯一方法是使用环境变量。
  • @hmjd 如果您想以编程方式执行此操作怎么办?

标签: windows cmd prompt


【解决方案1】:

有 PROMPT 环境变量:

set PROMPT=$P$G

$P$G 是默认值,为您提供通常的C:\> 类型输出。还有更多格式变量available here

【讨论】:

  • 深入目录结构时非常有用的提示:prompt $P$_$G。使用prompt 命令设置后,它将为将来的 cmd shell 窗口设置。
【解决方案2】:

另一种可能性是设置PROMPT 环境变量(实际上是PROMPT command 所做的)。

此方法的优点是您可以轻松地在系统范围内设置它,并且不需要任何脚本、编辑 Windows 注册表等。无论您如何打开它,它都适用于任何控制台窗口.

您可以使用两种方法,GUI 和命令行。

1。图形界面方法

只需按Win + Pause/Break(打开系统属性),点击高级系统设置,环境变量 并创建一个名为PROMPT 的新用户或系统变量,并将值设置为您希望提示的样子。系统变量将为所有用户设置它。

你可以在this article看图。

2。命令行方法

另一种永久设置PROMPT 环境变量的方法是使用SETX command

setx PROMPT <your-prompt-format>

如果您想为所有用户设置它,只需添加/M 开关:

setx PROMPT /M <your-prompt-format>

3。注册表方法

实际上,前面的两种方法都只是在注册表中创建了一个名为PROMPT 的字符串值。对于当前用户,它位于密钥 HKEY_CURRENT_USER\Environment 下,而系统范围内的所有用户都位于密钥 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment 下。


有关提示格式的详细信息,请查看this page 或其他答案。

注意:您可能必须重新启动系统(或者可能只是退出并登录)才能使更改生效。至少,您必须关闭并重新启动应用程序(控制台),以便它加载新的或更改的环境变量。如果不管什么原因都做不到,可以使用下面的方法:

4。命令行方法(临时)

如果你执行PROMPT command,它会在你的本地上下文中设置PROMPT环境变量,所以它会立即生效,但直到控制台关闭。它不会永久存储。

prompt <your-prompt-format>

【讨论】:

  • 最完整准确的答案。
  • 仅供参考,即使您没有直接修改注册表,setx 也是这样保存持久环境变量的。它们保存到当前用户的“HKEY_CURRENT_USER\Environment”,或所有用户的“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment”(带有/M 标志)。
  • @meustrus 好吧,这正是我在第 2 节下的回答中所描述的,不是吗?或者我错过了你的意思。
  • 我一定是疯了。我以为我在评论在不修改注册表的情况下更改提示。现在我看不出我以为我指的是什么。
  • 但是如果我想改变当前提示的颜色,不管它可能是什么?假设我想保留 Anaconda Prompt 的格式,它看起来像 (base) E:\VSCodeProjects&gt;。我可以通过 set "PROMPT=$e[44m%PROMPT%$e[0m" 暂时改变它的颜色,但这只是暂时的。我想将其永久设置为 prompt 变量是不行的,因为它会一直根据之前的 %PROMPT% 更改。
【解决方案3】:

使用HELP

C:\Windows-15:21:07.12> help PROMPT

Changes the cmd.exe command prompt.

PROMPT [text]

  text    Specifies a new command prompt.

Prompt can be made up of normal characters and the following special codes:

  $A   & (Ampersand)
  $B   | (pipe)
  $C   ( (Left parenthesis)
  $D   Current date
  $E   Escape code (ASCII code 27)
  $F   ) (Right parenthesis)
  $G   > (greater-than sign)
  $H   Backspace (erases previous character)
  $L   < (less-than sign)
  $N   Current drive
  $P   Current drive and path
  $Q   = (equal sign)
  $S     (space)
  $T   Current time
  $V   Windows version number
  $_   Carriage return and linefeed
  $$   $ (dollar sign)

If Command Extensions are enabled, the PROMPT command supports
the following additional formatting characters:

  $+   zero or more plus sign (+) characters depending upon the
       depth of the PUSHD directory stack, one character for each
       level pushed.

  $M   Displays the remote name associated with the current drive
       letter or the empty string if the current drive is not a network
       drive.

Reference for "Command Extensions"(例如“默认启用命令扩展。”)。

【讨论】:

    【解决方案4】:

    命令是:

    prompt yourPrompt
    

    完整的选项列表位于Microsoft Windows XP - Prompt

    【讨论】:

    • @narF,通过 WayBackMachine 修复链接...成为您想在世界上看到的变化 :)
    【解决方案5】:

    我在搜索如何保存PROMPT 命令以在启动命令提示符时始终运行时发现了这篇文章。它适用于任何版本的 Windows。

    • 单击开始菜单 → 运行
    • 运行对话框中,键入不带引号的“regedit”,然后单击确定
    • 从注册表编辑器中,选择HKEY_CURRENT_USER\Software\Microsoft\Command Processor
    • 如果 AutoRun 值不存在,请右键单击并单击 New可扩展字符串值。将值命名为“AutoRun”,不带引号。
    • 双击AutoRun值。
    • 在数据下,添加“PROMPT”和要为提示设置的值。在我的示例中,“提示 $p$_$g”。
    • 点击确定。
    • HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor 重复上述步骤以将更改应用到所有用户。
    • 关闭注册表编辑器。
    • 如果打开,请关闭命令提示符,然后再次打开它。您输入的提示现已使用。

    【讨论】:

    • 如果想要永久设置,这是正确答案之一!
    【解决方案6】:

    如果要保存更改,请使用

     setx prompt < format >
    

    如果你只想使用一次

    prompt < format >
    

    【讨论】:

      【解决方案7】:

      我使用一个名为 DOSbox.bat 的批处理文件来设置我需要的任何环境字符串,并且我的桌面上有一个快捷方式。 “目标:”框中的命令是 C:\Windows\System32\cmd.exe /k DOSbox.bat。我有一个快捷键 (Ctrl+Alt_D) 来调用它,并将“开始于”设置为我的首选目录。该快捷方式还允许设置命令窗口的字体、颜色和位置。

      批处理文件的内容目前是:

      @echo off
      set dircmd=/ogne
      prompt [$p]$_$g
      

      提示在括号中显示目录,而“>”则单独显示在一行中。这对于非常长的路径很有用。

      【讨论】:

      • 这不是很普遍。用户通常需要在他当前工作的目录中执行控制台,例如在文件管理器中。所以我导航到 Total Commander 中的目标目录并使用它的命令提示符执行cmd。您的方法不适用于此工作流程。无论您如何执行控制台,注册表中的AutoRun 或我在答案中描述的简单设置PROMPT 环境变量都将起作用。
      • 文件管理器的目录中没有 cmd 框。 Total Commander 不是很通用。 :p
      • 不知道你说的文件管理器是什么意思。但在 Windows 资源管理器中,只需右键单击按下 Shift 键的任何目录,然后单击“在此处打开命令窗口”。这适用于您可以打开目录上下文菜单的任何地方。我也不知道你所说的“Total Commander 不是很普遍”是什么意思。它比 Windows 资源管理器通用得多,后者对于实际工作不是很有用。
      猜你喜欢
      • 2022-01-25
      • 2010-09-09
      • 1970-01-01
      • 2019-01-11
      • 1970-01-01
      • 2013-06-28
      • 1970-01-01
      • 2018-05-05
      相关资源
      最近更新 更多