Powershell别名未通过脚本设置

时间:2015-02-23 21:41:46

标签: powershell

我正在尝试使用powershell脚本创建workin环境(PATH和别名)。

powershell.exe -Command c:\workspace\script\profile.ps1 -NoExit

在脚本中,我设置了一个别名:

Set-Alias npp "C:\Program Files (x86)\Notepad++\notepad++.exe"

然而,在启动新终端(通过ConEmu)后,别名未定义(环境设置正确等其他设置)。

有关如何通过脚本设置别名的任何提示吗?

3 个答案:

答案 0 :(得分:1)

有两个值得注意的事情:

  • 由于以下原因,您必须将-Command "file"指定为最后参数:

      

    如果Command的值是字符串,则Command必须是命令中的最后一个参数,因为在命令后键入的任何字符都被解释为命令参数。

    不这样做意味着-NoExit参数被忽略,新启动的进程会立即退出,并带上所有新别名。

    换句话说,请确保以这种方式启动PowerShell:

    powershell.exe -NoExit -Command c:\workspace\script\profile.ps1
    
  • 在脚本中定义别名意味着它们是在Script范围而不是Global范围内定义的,如配置文件所做的那样(有关详细信息,请阅读get-help about_Scopes)。

    然后,技巧是在创建别名时定义范围:

    Set-Alias npp "C:\Program Files (x86)\Notepad++\notepad++.exe" -Scope Global
    

    现在,只要脚本运行,别名就可以使用。

答案 1 :(得分:0)

那是profiles的用途。在配置文件目录(profile.ps1)中创建文件$env:USERPROFILE\Documents\WindowsPowerShell并在其中放置别名定义。只要启动PowerShell或ISE实例,就会读取配置文件。

您在常规脚本中定义的别名是易失性的,即只要运行脚本的PowerShell进程存在,它们就会存在。

答案 2 :(得分:0)

仅显示编辑或创建个人资料的简便方法

notepad $profile

如果以前没有创建配置文件脚本 - 只需调用

new-item -itemtype file -path $profile
notepad $profile