PowerShell更新含空格文件夹路径的快捷方式时报错:值不在预期范围内
解决PowerShell修改带空格路径快捷方式时的"Value does not fall within the expected range"错误
你遇到的问题源于对WScript.Shell快捷方式对象的属性使用错误,加上字符串拼接的语法问题,以下是具体修正方案:
错误原因分析
- TargetPath属性误用:
TargetPath仅用于指定可执行文件的路径,不能包含启动参数(比如/portable),参数需要单独通过Arguments属性设置。 - 字符串格式错误:你给
$newTargetPath添加了多余的引号,且字符串拼接时存在未闭合引号的语法问题,导致路径格式不符合要求。
修正后的代码
# 要修改的快捷方式路径 $shortcutPath = "C:\folder with space\terminal.exe - Portable.lnk" # 分离可执行文件路径和启动参数 $exePath = "C:\folder with space\terminal.exe" $launchArgs = "/portable" $shell = New-Object -ComObject WScript.Shell $shortcut = $shell.CreateShortcut($shortcutPath) # 设置目标可执行文件路径(无需手动加引号,CreateShortcut会自动处理带空格的路径) $shortcut.TargetPath = $exePath # 设置启动参数 $shortcut.Arguments = $launchArgs # 可选:设置图标(如果需要的话) # $shortcut.IconLocation = "shell32.dll,21" $shortcut.Save()
关键说明
- 带空格的路径无需手动添加双引号,
WScript.Shell的CreateShortcut方法会自动处理路径中的空格,避免格式错误。 - 启动参数必须单独赋值给
Arguments属性,不能和可执行文件路径混在一起放在TargetPath里,这是触发错误的核心原因。 - 确保字符串没有语法错误,比如未闭合的引号、多余的空格等。
内容的提问来源于stack exchange,提问作者user310291
相关产品推荐
相关产品推荐

