使用变量指定盘符时PowerShell创建快捷方式失败求助
问题解决:PowerShell变量指定盘符创建快捷方式异常
问题原因
你在拼接$drive与路径时,双引号的位置错误,导致TargetPath生成了无效路径格式。硬编码时你用的是'"C:\Alarm\RespusMonitorRT.exe"'(整个路径被双引号包裹),但变量拼接时写成$drive + '"\Alarm\RespusMonitorRT.exe"',会生成类似D:"\Alarm\RespusMonitorRT.exe"的错误路径,系统无法识别该路径,因此快捷方式指向“此电脑”。
修正后的脚本
$WshShell = New-Object -comObject WScript.Shell # 用Join-Path规范拼接快捷方式路径 $ShortcutPath = Join-Path -Path $drive -ChildPath "Alarm\Respus Monitor.lnk" $Shortcut = $WshShell.CreateShortcut($ShortcutPath) # 用字符串格式化生成正确的带双引号的目标路径 $Shortcut.TargetPath = '"{0}\Alarm\RespusMonitorRT.exe"' -f $drive $Shortcut.Arguments = "Profile=VoIP" $Shortcut.WorkingDirectory = Join-Path -Path $drive -ChildPath "Alarm" $Shortcut.Save()
额外说明
- 优先用
Join-Path拼接路径,避免手动拼接时出现斜杠、盘符与路径衔接的错误 - 字符串格式化
-f能更清晰地控制双引号的位置,确保目标路径格式正确 - 若路径中无空格,双引号可省略,但保留双引号能兼容后续路径新增空格的场景
内容的提问来源于stack exchange,提问作者Fellerson
相关产品推荐
相关产品推荐

