环境变量被 PowerShell Alias 覆盖?修改配置文件轻松解决

背景故事

最近在开发程序的时候需要用到 CURL 来发送一些网络请求,于是就使用 Scoop 管理器安装了 CURL 。本来是一个很简单的事情,但是在随后使用命令行调用 CURL 时却发现对应的程序是 Invoke-WebRequest 。在确认了环境变量后也不得不承认这个属实是把我难住了。不过通过我的的一番询问,最终了解到了这是 powershell 默认提供的别名(alias)之一。

(在单次会话中)移除别名

既然找到了问题的所在,那么解决起来就容易了。经过一番网上冲浪,也寻得了以下命令来移除别名:

Remove-Item alias:curl

在命令行中输入后也的确解决了问题,CURL 也能正常使用了。于是我便高高兴兴结了案,去 调戏 CURL 了。

不过比较了解我的朋友大概知道,这种小事情我一般是不会拿出来分享的。既然你能看到这篇文章,那么一定没这么简单!

没错,单独输入这条命令的移除效果仅限本次会话。

(永久的)移除别名

当我隔天打开命令行,准备享受我之前的劳动成果(指设置 CURL )时,显示的 Invoke-WebRequest 无疑是给了我当头一棒。于是我便再次搜索这个问题,才在官方文档中了解到使用 Remove-Item alias:curl 的效果仅限于单次会话。

不过文档中同样也给了一种解决方案,便是在 powershell 配置文件中添加配置语句。

但是仅仅这一句话显然是不足以解决问题的,于是我便进一步查找了解决方法。那么也不多说了,下面是完整的解决方案:

  1. 检查电脑中是否存在 powershell 配置文件。

    Test-Path $profile

    输入这条命令后如返回为 True 则代表电脑中已经存在配置文件,可以直接跳到编辑一步。如返回为 False 则相反,这代表你需要创建一个新的配置文件

  2. 创建 powershell 配置文件
    在命令行中输入以下命令即可创建一个新的配置文件。如果你的电脑中已经存在配置文件则可以跳过这一步。

    New-Item -path $profile -type file -force
  3. 使用记事本打开配置文件

    notepad $profile
  4. 在配置文件中输入以下内容并保存

    Remove-Item alias:curl
  5. 在命令行中重载配置文件
    最后我们回到命令行中,输入以下内容来重载配置文件。随后重新打开 powershell 的窗口,别名应该就已经被移除了!

    . $profile

那么按照步骤完成设置,你的 alias 问题应该就已经被彻底解决了。不过此处需要注意,部分只读的 alias 需要在命令的后方增加 -force 参数来强制修改。

结尾

趁着劲头写完这篇文章后已经是早上两点钟了,就这样简简单单的结个尾吧。顺便在这个(即将到达的)特别的日子里,祝各位新春快乐!

参考文献

New Comment

Comments

已有 1 条评论

  1. 2024-08-02 回复