如何禁用Powershell启动时显示的此消息?该消息是:加载个人和系统配置文件花费xxx毫秒我知道它显示当配置文件加载时间很慢。不过,我已经满足了我的配置文件加载时间。有什么办法可以禁用此消息吗?请注意,此消息似乎仅在Powershell 5.1+上显示。我使用:Powershell 5.1 windows 10 1709
whlutmcx1#
按如下方式更改Powershell链接目标的属性:
%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -nologo
然后消息应该会消失
dwbf0jvd2#
如果你正在使用***Windows终端*打开setting.json文件按下ctrl+,**或从顶部菜单(下拉图标〉设置)或直接从访问它
%LOCALAPPDATA%\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\
在setting.json中,转到"profiles" > "list",搜索具有
"profiles" > "list"
"commandline": "powershell.exe", change it to "commandline": "powershell.exe -nologo",
这也适用于pwsh
"commandline": "pwsh.exe", change it to "commandline": "pwsh.exe -nologo",
您也可以使用-NoProfile不加载PowerShell配置文件powershell Parameters中的其它命令
-NoProfile
h5qlskok3#
您可以通过删除存储在CurrentUserCurrentHost中的已保存配置文件来删除它。您只需键入
$profile
或
$profile | Select-Object *
在你的电源 shell 上。然后你就可以看到你的配置文件存储的目录了。接下来你要做的就是删除配置文件。完成。您可以参考配置文件和执行策略的完整文档,网址为:Microsoft docs或者如果你是更视觉化的人,你可以在这里找到一个很好的解释:John Hammod
ibrsph3r4#
∮编辑它∮你可能不会让它消失,因为你没有/不能在powershell调用中添加-nologo选项,所以如果它冒犯了你,你可以在它显示后编辑它。
在profile.ps1脚本的末尾,定义一个全局变量,指示需要修订前一行。
$global:RedactPreviousLine = $True
每个新命令行上显示的初始文本由prompt函数决定,每次powershell返回用户控制时都会调用prompt函数,通常是在powershell报告加载配置文件所用的时间之后。可以通过命令Get-Command Prompt | select-object -expandproperty scriptblock查看此函数的内容因为无论如何你都要加载一个概要文件,你可以简单地重新创建prompt函数,方法是在你在步骤1中输入的行上方的某个点添加它。在prompt函数中,我们将添加代码来编辑令人不快的消息。我选择这个变量名是因为它不太可能在其他地方再次使用。
Get-Command Prompt | select-object -expandproperty scriptblock
function Prompt { if ( Test-Path Variable:Global:RedactPreviousLine ) { $cursor = New-Object System.Management.Automation.Host.Coordinates $cursor.X = $host.ui.rawui.CursorPosition.X $cursor.Y = $host.ui.rawui.CursorPosition.Y - 1 $host.ui.rawui.CursorPosition = $cursor Write-host $( " " * ( $host.ui.RawUI.WindowSize.Width - 1 ) ) $host.ui.rawui.CursorPosition = $cursor Remove-Variable RedactPreviousLine -scope global } # end if "PS $($executionContext.SessionState.Path.CurrentLocation)$('>' * ($nestedPromptLevel + 1)) "; # .Link # https://go.microsoft.com/fwlink/?LinkID=225750 # .ExternalHelp System.Management.Automation.dll-help.xml } # end function prompt
这个过程的工作原理是运行Profile.PS1并设置标志,然后profile.ps1结束,Powershell将打印加载配置文件所用时间的消息并返回提示符。当powershell调用prompt函数时,它会看到全局变量RedactPreviousLine,并在线向上移动光标,在该行中填充空格,然后将光标返回到该行的开头,并删除标记。然后prompt函数将显示组成命令提示符的文本。最终的结果是,消息将在屏幕上 Flink ,然后迅速删除。
RedactPreviousLine
gv8xihay5#
1.点击“开始”-〉键入“powershell”-〉“打开文件位置”或转到C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows PowerShell(使用您的用户名更改<username>)1.如果您看到2个版本-“Windows PowerShell”和“Windows PowerShell x86”-请对这两个版本执行以下操作。
C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows PowerShell
<username>
1.右键单击并选择“属性”
1.在选项卡中,选择“快捷方式”选项卡,并在“目标”中的文本末尾追加-nologo
-nologo
1.点击“应用”和“确定”,享受无标识体验:)
nue99wik6#
到目前为止,我尝试了本帖中列举的所有技术,以及ChatGPT建议的六种方法......但都无济于事。每次启动Windows终端(我已将其配置为显示单个PowerShell选项卡)时,都会遇到类似于以下内容的两行代码:
PowerShell 7.3.2 Loading personal and system profiles took 538ms.
然而,通过将Clear-Host添加到轮廓Microsoft.PowerShell_profile.ps1的底部,可以使第一行不显示。
Clear-Host
Microsoft.PowerShell_profile.ps1
6条答案
按热度按时间whlutmcx1#
按如下方式更改Powershell链接目标的属性:
然后消息应该会消失
dwbf0jvd2#
如果你正在使用***Windows终端*打开setting.json文件按下ctrl+,**或从顶部菜单(下拉图标〉设置)或直接从访问它
在setting.json中,转到
"profiles" > "list"
,搜索具有这也适用于pwsh
您也可以使用
-NoProfile
不加载PowerShell配置文件powershell Parameters中的其它命令
h5qlskok3#
您可以通过删除存储在CurrentUserCurrentHost中的已保存配置文件来删除它。您只需键入
或
在你的电源 shell 上。然后你就可以看到你的配置文件存储的目录了。接下来你要做的就是删除配置文件。完成。
您可以参考配置文件和执行策略的完整文档,网址为:Microsoft docs或者如果你是更视觉化的人,你可以在这里找到一个很好的解释:John Hammod
ibrsph3r4#
∮编辑它∮
你可能不会让它消失,因为你没有/不能在powershell调用中添加-nologo选项,所以如果它冒犯了你,你可以在它显示后编辑它。
步骤1:设置标志
在profile.ps1脚本的末尾,定义一个全局变量,指示需要修订前一行。
第二步:设置提示
每个新命令行上显示的初始文本由prompt函数决定,每次powershell返回用户控制时都会调用prompt函数,通常是在powershell报告加载配置文件所用的时间之后。
可以通过命令
Get-Command Prompt | select-object -expandproperty scriptblock
查看此函数的内容因为无论如何你都要加载一个概要文件,你可以简单地重新创建prompt函数,方法是在你在步骤1中输入的行上方的某个点添加它。在prompt函数中,我们将添加代码来编辑令人不快的消息。我选择这个变量名是因为它不太可能在其他地方再次使用。
审查
这个过程的工作原理是运行Profile.PS1并设置标志,然后profile.ps1结束,Powershell将打印加载配置文件所用时间的消息并返回提示符。
当powershell调用prompt函数时,它会看到全局变量
RedactPreviousLine
,并在线向上移动光标,在该行中填充空格,然后将光标返回到该行的开头,并删除标记。然后prompt函数将显示组成命令提示符的文本。
最终的结果是,消息将在屏幕上 Flink ,然后迅速删除。
gv8xihay5#
1.点击“开始”-〉键入“powershell”-〉“打开文件位置”
或
转到
C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows PowerShell
(使用您的用户名更改<username>
)1.如果您看到2个版本-“Windows PowerShell”和“Windows PowerShell x86”-请对这两个版本执行以下操作。
1.右键单击并选择“属性”
1.在选项卡中,选择“快捷方式”选项卡,并在“目标”中的文本末尾追加
-nologo
1.点击“应用”和“确定”,享受无标识体验:)
nue99wik6#
到目前为止,我尝试了本帖中列举的所有技术,以及ChatGPT建议的六种方法......但都无济于事。每次启动Windows终端(我已将其配置为显示单个PowerShell选项卡)时,都会遇到类似于以下内容的两行代码:
然而,通过将
Clear-Host
添加到轮廓Microsoft.PowerShell_profile.ps1
的底部,可以使第一行不显示。