我一直在调整我的PowerShell配置文件中的一些脚本,它已经很烦人退出PowerShell然后重新启动它,因此它将加载我对我的配置文件中的脚本所做的任何更改。是否可以在不退出的情况下重新启动powershell会话?
答案 0 :(得分:10)
您可以. $profile
再次获取个人资料。
答案 1 :(得分:5)
@manojlds的答案是正确的,但最终可能会抛出错误。例如,如果您在个人资料中定义了新的PSDrive,那么重新点源可能会导致错误。
另一种方法是首先启动PowerShell,然后只需键入PowerShell立即启动另一个版本。我在嵌套控制台中对我的配置文件进行了更改,退出,然后重新运行PowerShell以测试更新的配置文件。
另一件事 - 让配置文件变得缓慢而谨慎。在我看来,虽然配置文件确实需要发展,但这种演变通常应该很慢。 YMMV !!
答案 2 :(得分:4)
您可以创建一个简单的函数并将其添加到$profile
(或创建一个模块,然后导入到'$ profile'),例如:
function Restart-PowerShell{
Start-Process PowerShell # Launch PowerShell host in new window
exit # Exit existing PowerShell host window
}
# Add any alias if you want, for ex. rps (rp already occupied by "Remove-ItemProperty”)
Set-Alias -Name rps -Value Restart-PowerShell
注意:虽然这可能不完全是您在问题标题中写的“w / out exiting”,但实际上,如果您的初衷是要进行某种重启PowerShell主机命令(这不是默认情况下在PS中可用)然后它将完成工作......
答案 3 :(得分:4)
这将在同一控制台窗口中启动一个新会话,重新加载您的配置文件:
ggplot(discharge) +
geom_line(aes(x = date, y = discharge)) +
geom_hline(yintercept = 5.5, linetype= "dashed", color = "red") +
annotate("text", x = discharge$date[13]-30, y = 5.5, label = "High")+
coord_cartesian(xlim = c(discharge$date[13], max(discharge$date)), clip = 'off')
您当然会丢失上一届会议的所有变量等。
答案 4 :(得分:0)
这里是@Bad答案的扩展。现在,它将处理ISE(因为我一直都在使用它)。
想法是,如果您在ISE中,它将重新启动ISE。如果您使用的是纯PowerShell,它将重新启动纯PowerShell。 Get-PSHostProcessInfo
返回有关当前PowerShell会话的信息,该信息使您可以确定是否正在运行ISE。
function Restart-PowerShell
{
if((Get-PSHostProcessInfo).ProcessName.Contains('powershell_ise'))
{
Start-Process 'powershell_ise.exe'
} else {
Start-Process 'powershell.exe'
}
exit
}