Windows
為什麼我使用 mklink 和 New-Item -ItemType SymbolicLink 得到不同的結果?
所以我正在嘗試使用 PowerShell 創建具有相對路徑的連結,但我不知道為什麼我會得到不同的結果,我對 Windows 中的命令行很陌生,如果這是一個愚蠢的問題,我很抱歉。以下是我得到的一些結果:
C:\Windows\system32>cd /d D:\test\directory D:\test\directory>mklink testlink ..\test.txt symbolic link created for testlink <<===>> ..\test.txt PS D:\test\directory> New-Item -ItemType SymbolicLink -Path .\testlinkpowershell -Target ..\test.txt D:\test\directory>dir 01/05/2020 10:57 AM <SYMLINK> testlink [..\test.txt] 01/05/2020 10:59 AM <SYMLINK> testlinkpowershell [D:\test\test.txt]
主要問題是,如果驅動器的字母發生變化,符號連結將不起作用,但如果我使用 mklink,它就像一個魅力。我知道我可以只使用 mklink 但我想知道為什麼它在 PowerShell 中不起作用。
Windows PowerShell 根本不支持為符號連結創建相對路徑。因此,它在創建符號連結之前將路徑解析為絕對路徑。
在較新的 PowerShell Core 中,他們修復了這個問題。請參閱GitHub 問題
在 PowerShell Core 7 中,您現在可以使用
New-Item
相對路徑創建符號連結。我不知道他們是否會將此移植回 Windows PowerShell 5.x。我對此表示懷疑。