在Unix中,我创建了很多别名/函数。这是我的工作流程:
* I have a file named 'aliases.txt' in my $HOME directory
* I have a quick command to edit that file
* I have an alias named 'sa' that sources that alias file. I.e.
alias sa='. $HOME/aliases.txt
因此,我可以快速轻松地创建,修改和使用新别名。
我正在尝试在Powershell中重新创建相同的工作流程,但它不起作用。我的$ HOME目录中有aliases.ps1文件。我尝试创建一个'sa'别名,但当然Powershell别名不能包含参数。所以我试过了
function sa {. $HOME\aliases.ps1 }
我可以运行它但是我的aliases.pl1文件中的更改不会反映在我的shell会话中。我假设它是因为Windows在新进程中运行'sa'函数,而Unix在同一进程中运行函数和别名。我怎样才能让我的'sa'回来?
(BTW,“每次在命令行输入'。$ HOME \ aliases.ps1'”不是我正在寻找的答案。
提前致谢。
答案 0 :(得分:7)
会
. sa
足够简洁?您只需要将函数调用点源到当前范围。 (注意点和函数名之间需要有一个空格)。
答案 1 :(得分:0)
你想做什么?你问题的某些部分没有意义。
好的,我现在明白了。
Import-Alias
正是出于此目的!编辑文件并执行Import-Alias file
,您将获得已添加的新别名。
你的流程:
使用Set-Alias命令设置别名并将其添加到您的个人资料中,或者只是将该功能添加到个人资料中。
notepad $profile
(add the next in notepad)
function sa {. HOME\aliases.ps1 }
现在sa应该可用,并且可以设置aliases.ps1以使用Set-Alias
并添加别名。
您正试图将您在unix中完成的操作映射到Powershell。您应该尝试使用powershell提供的功能:
Powershell流程:
notepad $profile
(in notepad)
Set-Alias <alias> <command>
只需在您的个人资料中添加Set-Alias命令即可。
或者使用Export-Alias
导出到文件中,然后添加Import-Alias
从您的个人资料中的文件导入。
所有这些都在这里得到了很好的解释:http://technet.microsoft.com/en-us/library/ee692685.aspx