【发布时间】:2015-12-03 23:45:10
【问题描述】:
我使用带有 posh-git 的 Powershell 窗口来处理 git,并且已经厌倦了反复输入 cd ..\Database、cd ..\Backend 和 cd ..\Frontend 来在我正在使用的存储库之间切换。我想创建别名,以便我可以简单地运行 db、be 或 fe 来执行此操作。
经过一些研究和失败的实验,我一无所获,发现 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
我想最终向我的配置文件脚本中添加创建函数的命令,但一直无法通过这个简单的块,并且我感到非常沮丧,因为我无法让看似简单的事情起作用。
谁能帮我解决这个问题?
【问题讨论】:
-
您的脚本非常适合我。您使用的是哪个版本的 PowerShell?
-
Remove-Item alias::db -
谢谢你们俩。我一看到@PetSerAl 的评论,我就有了一个 DOH!片刻。当然,发生的事情是
db别名仍然存在,而且我现在了解到别名优先于函数。一旦我删除了我尝试过的所有别名和函数,然后重新创建了db一个,它就可以正常工作了。问题解决了。 -
@PetSerAl 你应该这样回答。我敢肯定,有很多人遇到过这个问题,甚至连别名优先考虑都没有。
-
我会,但我认为在回答我自己的问题之前会有延迟。
标签: function powershell alias