经过测试,环境变量下的快捷方式不会被自动处理。
但是我们可以写自己的帮助函数实现你的需求:
function Invoke-Link { param($Name) if($Name -eq $null){ return } # find item at current directory if(Test-Path $Name){ Invoke-Item $Name return } # find item in environment path [environment]::GetEnvironmentVariable('path') -split ';' | foreach { $dir = [environment]::ExpandEnvironmentVariables($_) # test item width full path $fileName = Join-Path $dir $Name if(Test-Path $fileName) { Invoke-Item $fileName break } # test item with lnk suffix $fileName = Join-Path $dir ("{0}.lnk" -f $Name) if(Test-Path $fileName) { Invoke-Item $fileName break } } } Invoke-link -Name 'notepad++.exe.lnk' Invoke-link -Name 'notepad++'