0%

Powershell 中使用 mklink 命令

Win10 开始就逐渐将命令行从 cmd 迁移到 Powershell 上来,但是并非所有 cmd 下的命令在 Powershell 中均可用——比如,mklink。

如尝试在 Powershell 中执行 mklink 命令将得到错误提示:无法将“mklink”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。

解决方案一:临时切换到 cmd 命令行

固然可以通过执行 cmd 命令切换到 cmd 命令行模式,执行完 mklink 等命令后,再通过执行 exit 命令退出返回 Powershell。但对于临时执行而言,显然太过于繁琐了。

解决方案二:使用 cmd 命令执行 mklink

其实,大可不必切换,直接使用 cmd 命令执行 mklink 即可。甚至,为了执行后仍保持在 Powershell 环境中,可以为 cmd 命令指定 /C 开关。即 cmd /C mklink Link Target

可见,总是要加一个 cmd /C 前缀,也有点麻烦。是否可以如 cmd 中一样的使用 mklink 命令呢?答案是肯定的。

解决方案三:声明相关函数并设置别名为 mklink

我们可以将通过 cmd 命令调用 mklink 的脚本封装成一个函数,然后为该函数设置别名为 mklink。这就可以同 cmd 命令行一样,在 Powershell 中使用 mklink 了。具体脚本如下:

1
2
3
4
5
function Make-Link {
cmd /C mklink $args
}

set-alias mklink Make-Link

将其写入 $profile 文件,即可在启动 Powershell 时生效。