PowerShell 中的 mklink
mklink
不属于 PowerShell 的一部分,但我们可以通过自定义函数的方式实现。注意符号链接的创建方式与mklink
有所不同。
function mklink { param ([switch]$s, [switch]$h, [switch]$j, $link, $target) function newItem { param ($item_type) return New-Item $link -ItemType $item_type -Value $target | Format-Table LinkType, Target } if ($s) { return newItem SymbolicLink } if ($h) { return newItem HardLink } if ($j) { return newItem Junction } }
把这段代码添加到$Profile
(对于 Windows 自带的 PowerShell 可以是 C:\Users\<user>\Documents\WindowsPowerShell\profile.ps1
,文件不存在则创建之)即可。
用法:mklink <[-s] | [-h] | [-j]> <link> <target>
-s
:创建 SymbolicLink-h
:创建 HardLink-j
:创建 Junctionlink
:链接文件所在的位置target
:链接到哪个文件,使用最新版(而非 Windows 自带的)PowerShell 可以在符号链接上使用相对位置
细节
- 三个选项若全不选,则函数什么也不做。
- 若选中多于一个选项,则以符号链接、硬链接、Junction 的优先级创建链接。
New-Item
的语法太冗长,所以我半小时速成了 PowerShell 的基本语法造了个轮子。以上内容供个人记录,遵循 Apache License, Version 2.0。