在每个新shell

时间:2015-08-27 04:15:51

标签: powershell

我有一个名为Restart-Audio.ps1

的脚本
Stop-Process -Confirm -Name musicapp*
Stop-Service audiosrv
Stop-Service AudioEndpointBuilder
Start-Service audiosrv
Invoke-Item C:\path\to\music\app.exe

每次我开始一个新的PowerShell会话时,我希望在我像普通的cmdlet一样输入“Restart-Audio”时运行这个脚本。当我尝试将其添加到我的PowerShell配置文件时,它尝试运行脚本,要求确认停止进程。我不希望它在PowerShell会话启动后立即运行;我希望命令在我告诉它时运行。

感谢。

1 个答案:

答案 0 :(得分:2)

可以使用Powershell配置文件完成此操作,有关详细信息,请参阅here

您基本上创建(如果该文件尚不存在)C:\Users\<<UserName>>\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1并且可以包含您的上述脚本。

我将文件构造为:

Function Restart-Audio{
Stop-Process -Confirm -Name musicapp*
Stop-Service audiosrv
Stop-Service AudioEndpointBuilder
Start-Service audiosrv
Invoke-Item C:\path\to\music\app.exe
}

然后您只需打开Powershell并输入Restart-Audio即可运行该功能。

此外,如果您将脚本保存到$env:PATH中的任何文件夹,您只需键入脚本名称的前几个字符,然后单击TAB即可运行脚本。