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

Why does this Powershell function to change directory not work?

我使用带有 posh-git 的 Powershell window 来处理 git,并且已经厌倦了重复输入 cd ..\Databasecd ..\Backendcd ..\Frontend 在我正在使用的回购协议之间切换。我想创建别名,以便我可以简单地 运行 dbbefe 来执行此操作。

经过一些研究和失败的实验后,我一无所获,发现 告诉我别名不能带参数,我应该使用函数,所以我试了一下。

我可以使用命令成功切换到所需目录

Set-Location C:\Projects\Database

所以我在 Powershell window 中执行了以下命令来创建一个函数

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

并且执行无误。但是紧接着 运行ning 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

我想最终添加命令来创建我的配置文件脚本的功能,但一直无法通过这个简单的块,我感到非常沮丧,因为我无法获得看似简单的东西工作。

谁能帮我解决这个问题?

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