为什么这个Powershell函数改变目录不起作用?

时间:2015-12-03 13:22:09

标签: function powershell alias

我使用带有posh-git的Powershell窗口来使用git并且已经厌倦了反复键入cd ..\Databasecd ..\Backendcd ..\Frontend来切换回购邮件I' m与...合作。我想创建别名,以便我可以只运行dbbefe来执行此操作。

经过一些研究和失败的实验后,我无处可寻,发现this answer通知别名不能参数,我应该使用函数,所以我试过了。

我可以使用命令

成功更改为所需目录
Set-Location C:\Projects\Database

所以我在Powershell窗口中执行了以下操作来创建一个函数

function db { set-location C:\Projects\Database }

并且执行没有错误。但是,在之后立即运行db时,我收到以下错误。

db : The term 'Set-Location C:\Projects\Database' is not recognized as the name of a cmdlet, function, script file, or
operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try
again.
At line:1 char:1
+ db
+ ~~
    + CategoryInfo          : ObjectNotFound: (Set-Location C:\Projects\Database:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

我想最终添加命令来为我的个人资料脚本创建函数,但是无法通过这个简单的块,我感到非常沮丧,因为我无法获得看似简单的事情。工作

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:3)

您的错误消息抱怨找不到Set-Location C:\Projects\Database命令,但命令被标记为错误db。我能找到的这个错误消息的唯一合理解释是db命令是Set-Location C:\Projects\Database的别名。您可能尝试在尝试创建函数之前创建别名。别名的优先级高于函数。因此,即使您现在有db函数,db仍然作为别名解析并产生错误。您必须删除别名Remove-Item Alias::db,然后才会解析db才能运行。