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:创建 Junction
  • link:链接文件所在的位置
  • target:链接到哪个文件,使用最新版(而非 Windows 自带的)PowerShell 可以在符号链接上使用相对位置
细节
  • 三个选项若全不选,则函数什么也不做。
  • 若选中多于一个选项,则以符号链接、硬链接、Junction 的优先级创建链接。

New-Item 的语法太冗长,所以我半小时速成了 PowerShell 的基本语法造了个轮子。以上内容供个人记录,遵循 Apache License, Version 2.0

说点什么吧

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据