- 导航 (返回顶部)
-
[1. about_Prompts](#1. about_Prompts)
- [1.1 获取 prompt 函数](#1.1 获取 prompt 函数)
- [1.2 获取 prompt 脚本](#1.2 获取 prompt 脚本)
- [1.3 默认提示符](#1.3 默认提示符)
- [1.4 内置提示符](#1.4 内置提示符)
-
[2. 自定义当前会话的提示符](#2. 自定义当前会话的提示符)
- [2.1 几个简单的例子](#2.1 几个简单的例子)
- [2.2 检测是否管理员运行](#2.2 检测是否管理员运行)
- [2.3 显示历史记录ID](#2.3 显示历史记录ID)
- [2.4 随机更改颜色的提示符](#2.4 随机更改颜色的提示符)
-
[3. 自定义配置文件](#3. 自定义配置文件)
- [3.1 about_Profiles](#3.1 about_Profiles)
- [3.2 配置文件类型和位置](#3.2 配置文件类型和位置)
- [3.3 PROFILE 变量](#3.3 PROFILE 变量)
- [3.4 创建配置文件](#3.4 创建配置文件)
- [3.5 编辑配置文件](#3.5 编辑配置文件)
- [3.6 修改执行策略-允许本地脚本运行](#3.6 修改执行策略-允许本地脚本运行)
- [3.7 NoProfile 参数](#3.7 NoProfile 参数)
- [3.8 添加更多个性化设置](#3.8 添加更多个性化设置)
-
[4. 转载一个不错的配置](#4. 转载一个不错的配置)
#1. about_Prompts
1.1 获取 prompt 函数
1.2 获取 prompt 脚本
1.3 默认提示符
1.4 内置提示符
2. 自定义当前会话的提示符
2.1 几个简单的例子
2.2 检测是否管理员运行
2.3 显示历史记录ID
2.4 随机更改颜色的提示符
3. 自定义配置文件
3.1 about_Profiles
3.2 配置文件类型和位置
3.3 PROFILE 变量 3.4 创建配置文件 3.5 编辑配置文件 3.6 修改执行策略-允许本地脚本运行 3.7 NoProfile 参数 3.8 添加更多个性化设置 4. 转载一个不错的配置 #1. about_Prompts 1.1 获取 prompt 函数 1.2 获取 prompt 脚本 1.3 默认提示符 1.4 内置提示符 2. 自定义当前会话的提示符 2.1 几个简单的例子 2.2 检测是否管理员运行 2.3 显示历史记录ID 2.4 随机更改颜色的提示符 3. 自定义配置文件 3.1 about_Profiles 3.2 配置文件类型和位置 3.3 PROFILE 变量
3.4 创建配置文件
3.5 编辑配置文件
3.6 修改执行策略-允许本地脚本运行
3.7 NoProfile 参数
3.8 添加更多个性化设置
4. 转载一个不错的配置
#1. about_Prompts
1.1 获取 prompt 函数
1.2 获取 prompt 脚本
1.3 默认提示符
1.4 内置提示符
2. 自定义当前会话的提示符
2.1 几个简单的例子
2.2 检测是否管理员运行
2.3 显示历史记录ID
2.4 随机更改颜色的提示符
3. 自定义配置文件
3.1 about_Profiles
3.2 配置文件类型和位置
3.3 PROFILE 变量 3.4 创建配置文件 3.5 编辑配置文件 3.6 修改执行策略-允许本地脚本运行 3.7 NoProfile 参数 3.8 添加更多个性化设置 4. 转载一个不错的配置 #1. about_Prompts 1.1 获取 prompt 函数 1.2 获取 prompt 脚本 1.3 默认提示符 1.4 内置提示符 2. 自定义当前会话的提示符 2.1 几个简单的例子 2.2 检测是否管理员运行 2.3 显示历史记录ID 2.4 随机更改颜色的提示符 3. 自定义配置文件 3.1 about_Profiles 3.2 配置文件类型和位置 3.3 PROFILE 变量
3.4 创建配置文件
3.5 编辑配置文件
3.6 修改执行策略-允许本地脚本运行
3.7 NoProfile 参数
3.8 添加更多个性化设置
4. 转载一个不错的配置
#1. about_Prompts
1.1 获取 prompt 函数
1.2 获取 prompt 脚本
1.3 默认提示符
1.4 内置提示符
2. 自定义当前会话的提示符
2.1 几个简单的例子
2.2 检测是否管理员运行
2.3 显示历史记录ID
2.4 随机更改颜色的提示符
3. 自定义配置文件
3.1 about_Profiles
3.2 配置文件类型和位置
3.3 PROFILE 变量 3.4 创建配置文件 3.5 编辑配置文件 3.6 修改执行策略-允许本地脚本运行 3.7 NoProfile 参数 3.8 添加更多个性化设置 4. 转载一个不错的配置 #1. about_Prompts 1.1 获取 prompt 函数 1.2 获取 prompt 脚本 1.3 默认提示符 1.4 内置提示符 2. 自定义当前会话的提示符 2.1 几个简单的例子 2.2 检测是否管理员运行 2.3 显示历史记录ID 2.4 随机更改颜色的提示符 3. 自定义配置文件 3.1 about_Profiles 3.2 配置文件类型和位置 3.3 PROFILE 变量
3.4 创建配置文件
3.5 编辑配置文件
3.6 修改执行策略-允许本地脚本运行
3.7 NoProfile 参数
3.8 添加更多个性化设置
4. 转载一个不错的配置
#1. about_Prompts
1.1 获取 prompt 函数
1.2 获取 prompt 脚本
1.3 默认提示符
1.4 内置提示符
2. 自定义当前会话的提示符
2.1 几个简单的例子
2.2 检测是否管理员运行
2.3 显示历史记录ID
2.4 随机更改颜色的提示符
3. 自定义配置文件
3.1 about_Profiles
3.2 配置文件类型和位置
3.3 PROFILE 变量 3.4 创建配置文件 3.5 编辑配置文件 3.6 修改执行策略-允许本地脚本运行 3.7 NoProfile 参数 3.8 添加更多个性化设置 4. 转载一个不错的配置 #1. about_Prompts 1.1 获取 prompt 函数 1.2 获取 prompt 脚本 1.3 默认提示符 1.4 内置提示符 2. 自定义当前会话的提示符 2.1 几个简单的例子 2.2 检测是否管理员运行 2.3 显示历史记录ID 2.4 随机更改颜色的提示符 3. 自定义配置文件 3.1 about_Profiles 3.2 配置文件类型和位置 3.3 PROFILE 变量
3.4 创建配置文件
3.5 编辑配置文件
3.6 修改执行策略-允许本地脚本运行
3.7 NoProfile 参数
3.8 添加更多个性化设置
4. 转载一个不错的配置
#1. about_Prompts
1.1 获取 prompt 函数
1.2 获取 prompt 脚本
1.3 默认提示符
1.4 内置提示符
2. 自定义当前会话的提示符
2.1 几个简单的例子
2.2 检测是否管理员运行
2.3 显示历史记录ID
2.4 随机更改颜色的提示符
3. 自定义配置文件
3.1 about_Profiles
3.2 配置文件类型和位置
3.3 PROFILE 变量 3.4 创建配置文件 3.5 编辑配置文件 3.6 修改执行策略-允许本地脚本运行 3.7 NoProfile 参数 3.8 添加更多个性化设置 4. 转载一个不错的配置 #1. about_Prompts 1.1 获取 prompt 函数 1.2 获取 prompt 脚本 1.3 默认提示符 1.4 内置提示符 2. 自定义当前会话的提示符 2.1 几个简单的例子 2.2 检测是否管理员运行 2.3 显示历史记录ID 2.4 随机更改颜色的提示符 3. 自定义配置文件 3.1 about_Profiles 3.2 配置文件类型和位置 3.3 PROFILE 变量
3.4 创建配置文件
3.5 编辑配置文件
3.6 修改执行策略-允许本地脚本运行
3.7 NoProfile 参数
3.8 添加更多个性化设置
4. 转载一个不错的配置
#1. about_Prompts
1.1 获取 prompt 函数
1.2 获取 prompt 脚本
1.3 默认提示符
1.4 内置提示符
2. 自定义当前会话的提示符
2.1 几个简单的例子
2.2 检测是否管理员运行
2.3 显示历史记录ID
2.4 随机更改颜色的提示符
3. 自定义配置文件
3.1 about_Profiles
3.2 配置文件类型和位置
3.3 PROFILE 变量 3.4 创建配置文件 3.5 编辑配置文件 3.6 修改执行策略-允许本地脚本运行 3.7 NoProfile 参数 3.8 添加更多个性化设置 4. 转载一个不错的配置 #1. about_Prompts 1.1 获取 prompt 函数 1.2 获取 prompt 脚本 1.3 默认提示符 1.4 内置提示符 2. 自定义当前会话的提示符 2.1 几个简单的例子 2.2 检测是否管理员运行 2.3 显示历史记录ID 2.4 随机更改颜色的提示符 3. 自定义配置文件 3.1 about_Profiles 3.2 配置文件类型和位置 3.3 PROFILE 变量
3.4 创建配置文件
3.5 编辑配置文件
3.6 修改执行策略-允许本地脚本运行
3.7 NoProfile 参数
3.8 添加更多个性化设置
4. 转载一个不错的配置
#1. about_Prompts
1.1 获取 prompt 函数
1.2 获取 prompt 脚本
1.3 默认提示符
1.4 内置提示符
2. 自定义当前会话的提示符
2.1 几个简单的例子
2.2 检测是否管理员运行
2.3 显示历史记录ID
2.4 随机更改颜色的提示符
3. 自定义配置文件
3.1 about_Profiles
3.2 配置文件类型和位置
3.3 PROFILE 变量 3.4 创建配置文件 3.5 编辑配置文件 3.6 修改执行策略-允许本地脚本运行 3.7 NoProfile 参数 3.8 添加更多个性化设置 4. 转载一个不错的配置 #1. about_Prompts 1.1 获取 prompt 函数 1.2 获取 prompt 脚本 1.3 默认提示符 1.4 内置提示符 2. 自定义当前会话的提示符 2.1 几个简单的例子 2.2 检测是否管理员运行 2.3 显示历史记录ID 2.4 随机更改颜色的提示符 3. 自定义配置文件 3.1 about_Profiles 3.2 配置文件类型和位置 3.3 PROFILE 变量
3.4 创建配置文件
3.5 编辑配置文件
3.6 修改执行策略-允许本地脚本运行
3.7 NoProfile 参数
3.8 添加更多个性化设置
4. 转载一个不错的配置
#1. about_Prompts
1.1 获取 prompt 函数
1.2 获取 prompt 脚本
1.3 默认提示符
1.4 内置提示符
2. 自定义当前会话的提示符
2.1 几个简单的例子
2.2 检测是否管理员运行
2.3 显示历史记录ID
2.4 随机更改颜色的提示符
3. 自定义配置文件
3.1 about_Profiles
3.2 配置文件类型和位置
3.3 PROFILE 变量 3.4 创建配置文件 3.5 编辑配置文件 3.6 修改执行策略-允许本地脚本运行 3.7 NoProfile 参数 3.8 添加更多个性化设置 4. 转载一个不错的配置 #1. about_Prompts 1.1 获取 prompt 函数 1.2 获取 prompt 脚本 1.3 默认提示符 1.4 内置提示符 2. 自定义当前会话的提示符 2.1 几个简单的例子 2.2 检测是否管理员运行 2.3 显示历史记录ID 2.4 随机更改颜色的提示符 3. 自定义配置文件 3.1 about_Profiles 3.2 配置文件类型和位置 3.3 PROFILE 变量
3.4 创建配置文件
3.5 编辑配置文件
3.6 修改执行策略-允许本地脚本运行
3.7 NoProfile 参数
3.8 添加更多个性化设置
4. 转载一个不错的配置
#1. about_Prompts
1.1 获取 prompt 函数
1.2 获取 prompt 脚本
1.3 默认提示符
1.4 内置提示符
2. 自定义当前会话的提示符
2.1 几个简单的例子
2.2 检测是否管理员运行
2.3 显示历史记录ID
2.4 随机更改颜色的提示符
3. 自定义配置文件
3.1 about_Profiles
3.2 配置文件类型和位置
3.3 PROFILE 变量 3.4 创建配置文件 3.5 编辑配置文件 3.6 修改执行策略-允许本地脚本运行 3.7 NoProfile 参数 3.8 添加更多个性化设置 4. 转载一个不错的配置 #1. about_Prompts 1.1 获取 prompt 函数 1.2 获取 prompt 脚本 1.3 默认提示符 1.4 内置提示符 2. 自定义当前会话的提示符 2.1 几个简单的例子 2.2 检测是否管理员运行 2.3 显示历史记录ID 2.4 随机更改颜色的提示符 3. 自定义配置文件 3.1 about_Profiles 3.2 配置文件类型和位置 3.3 PROFILE 变量
3.4 创建配置文件
3.5 编辑配置文件
3.6 修改执行策略-允许本地脚本运行
3.7 NoProfile 参数
3.8 添加更多个性化设置
4. 转载一个不错的配置
#1. about_Prompts
1.1 获取 prompt 函数
1.2 获取 prompt 脚本
1.3 默认提示符
1.4 内置提示符
2. 自定义当前会话的提示符
2.1 几个简单的例子
2.2 检测是否管理员运行
2.3 显示历史记录ID
2.4 随机更改颜色的提示符
3. 自定义配置文件
3.1 about_Profiles
3.2 配置文件类型和位置
3.3 PROFILE 变量 3.4 创建配置文件 3.5 编辑配置文件 3.6 修改执行策略-允许本地脚本运行 3.7 NoProfile 参数 3.8 添加更多个性化设置 4. 转载一个不错的配置 #1. about_Prompts 1.1 获取 prompt 函数 1.2 获取 prompt 脚本 1.3 默认提示符 1.4 内置提示符 2. 自定义当前会话的提示符 2.1 几个简单的例子 2.2 检测是否管理员运行 2.3 显示历史记录ID 2.4 随机更改颜色的提示符 3. 自定义配置文件 3.1 about_Profiles 3.2 配置文件类型和位置 3.3 PROFILE 变量
3.4 创建配置文件
3.5 编辑配置文件
3.6 修改执行策略-允许本地脚本运行
3.7 NoProfile 参数
3.8 添加更多个性化设置
4. 转载一个不错的配置
-
1. about_Prompts
https://learn.microsoft.com/zh-cn/powershell/module/microsoft.powershell.core/about/about_prompts?view=powershell-7.5
PowerShell 具有内置 prompt 函数。 可以在 PowerShell 配置文件脚本中定义自定义 prompt 函数。
function prompt { <function-body> }
prompt 函数必须返回一个对象。 最佳做法是返回一个字符串或格式化为字符串的对象。 建议最大长度是 80 个字符。
PS C:\Windows\system32> function prompt {"Hello, World > "}
Hello, World >
1.1 获取 prompt 函数
若要获取 prompt 函数,请在 Function 驱动器中使用 Get-Command cmdlet 或使用 Get-Item cmdlet。
Get-Command prompt
CommandType Name Version Source
Function prompt
Get-Item Function:prompt
CommandType Name Version Source
Function prompt
1.2 获取 prompt 脚本
若要获取设置提示符的值的脚本,请使用函数的 ScriptBlockprompt 属性。
PS C:\Windows\system32> (Get-Command prompt).ScriptBlock
...
与所有函数一样,prompt 函数存储在 Function: 驱动器中。 若要显示创建当前 prompt 函数的脚本,请键入:
PS C:\Windows\system32> (Get-Item Function:prompt).ScriptBlock
...
1.3 默认提示符
仅当 prompt 函数生成错误或未返回对象时,才会显示默认提示符。
默认 PowerShell 提示符为:
PS>
例如,以下命令将 prompt 函数设置为 null,这是无效的。 因此会显示默认提示符。
**function prompt {null}**
PS>
因为 PowerShell 附带内置提示符,所以通常不会看到默认提示符。
1.4 内置提示符
PowerShell 包含内置 prompt 函数。
function prompt {
"PS $($ExecutionContext.SessionState.Path.CurrentLocation)$('>' * ($NestedPromptLevel + 1)) ";
# .Link
# https://go.microsoft.com/fwlink/?LinkID=225750
# .ExternalHelp System.Management.Automation.dll-help.xml
}
该函数使用 Test-Path cmdlet 测试 $PSDebugContext 自动变量是否具有值。
- 如果 $PSDebugContext 具有值,则你在调试模式下运行,且 [DBG]: 已添加到提示符,如下所示:
-
-
DBG\]: PS C:\\ps-test\>
-
-
- PS C:\ps-test>
- 如果处于嵌套提示符中,则该函数会将两个尖括号 (>>) 添加到提示符。
- 如果 $NestedPromptLevel 自动变量的值大于 0,则处于嵌套提示符中。
- 例如,在嵌套提示符中进行调试时,提示符类似于以下提示符:
-
-
DBG\] PS C:\\ps-test\>\>\>
-
若要自定义提示符,请编写新的 prompt 函数。 该函数不受保护,因此可以覆盖它。
若要编写 prompt 函数,请键入以下内容:
function prompt { }
随后在大括号之间,输入创建提示符的命令或字符串。
2.1 几个简单的例子
例如,下面的提示符包含计算机名称:
PS C:\Windows\system32> function prompt {"PS [Env:COMPUTERNAME\]\> "}**
PS \[TOMPC\]\>
下面的 prompt 函数包含当前日期和时间:
PS \[TOMPC\]\> **function prompt {"(Get-Date)> "}
12/11/2025 20:45:35>
路径+日期
function prompt {"(Get-Location) (Get-Date)> "}
格式化后的时间+路径
function prompt {"[ (Get-Date -Format 'HH:mm:ss') \] (Get-Location) >"}
2.2 检测是否管理员运行
还可以更改默认 prompt 函数:
例如,以下修改后的 prompt 函数在提升的会话中运行时,会将 [ADMIN]: 添加到内置的 PowerShell 提示符。
function prompt {
$identity = [Security.Principal.WindowsIdentity]::GetCurrent()
$principal = [Security.Principal.WindowsPrincipal] $identity
$adminRole = [Security.Principal.WindowsBuiltInRole]::Administrator
$(if (Test-Path Variable:/PSDebugContext) { '[DBG]: ' }
elseif($principal.IsInRole($adminRole)) { "[ADMIN]: " }
else { '' }
) + 'PS ' + $(Get-Location) +
$(if ($NestedPromptLevel -ge 1) { '>>' }) + '> '
}
使用"以管理员身份运行"选项启动 PowerShell 时,会显示类似于以下提示符的提示符:
ADMIN\]: PS C:\\Windows\\system32\>
### 2.3 显示历史记录ID
以下 prompt 函数显示下一个命令的历史记录 ID。 若要查看命令历史记录,请使用: Get-History
function prompt {
# The at sign creates an array in case only one history item exists.
$history = @(Get-History)
if($history.Count -gt 0)
{
$lastItem = $history[$history.Count - 1]
$lastId = $lastItem.Id
}
$nextCommand = $lastId + 1
$currentDirectory = Get-Location
"PS: $nextCommand $currentDirectory >"
}
PS: 7 C:\\Windows\\system32 \>
PS: 7 C:\\Windows\\system32\> **get-history**
Id CommandLine
-- -----------
1 (Get-Item Function:prompt).ScriptBlock
2 Get-Location
3 function prompt {"PS \[$Env:COMPUTERNAME\]\> "}
4 function prompt {"$(Get-Date)\> "}
5 function prompt {...
6 function prompt {...
PS: 8 C:\\Windows\\system32 \>
### 2.4 随机更改颜色的提示符
以下提示符使用 Write-Host 和 Get-Random cmdlet 创建随机更改颜色的提示符。 因为 Write-Host 会写入当前主机应用程序,但不会返回对象,所以此函数包含 return 语句。 如果没有该语句,则 PowerShell 会使用默认提示符 PS\>。
function prompt {
$color = Get-Random -Min 1 -Max 16
Write-Host ("PS " + $(Get-Location) +">") -NoNewline -ForegroundColor $Color
return " "
}
PS C:\\Windows\\system32\>
## 3. 自定义配置文件
### 3.1 about_Profiles
与任何函数一样,prompt 函数仅存在于当前会话中。如前一章的例子。