You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在包含括号的URL中使用PowerShell的Invoke-WebRequest?

问题根因

报错本质是PowerShell默认会解析未被引号包裹的参数字符串中的特殊语法符号,括号在PowerShell语法中用于标识需要优先执行的表达式,因此URL中未被引号包裹的(FREE!)会被识别为需要执行的命令,才会抛出命令不存在的错误。

解决方案
  • 方法1:为URL参数包裹单引号(优先推荐)
    单引号在PowerShell中定义纯文本字符串,不会解析内部的任何特殊符号与变量,直接修改代码如下:
    Invoke-WebRequest 'http://FreeZipFiles.com/FreeZipFile (FREE!).zip' -Outfile C:\Users\MyUserName\Desktop\test.zip

  • 方法2:为URL参数包裹双引号
    如果URL中不包含$开头的PowerShell变量,也可以使用双引号包裹,效果和单引号一致:
    Invoke-WebRequest "http://FreeZipFiles.com/FreeZipFile (FREE!).zip" -Outfile C:\Users\MyUserName\Desktop\test.zip

  • 方法3:提前将URL赋值给变量
    如果需要动态拼接生成下载链接,可以先将完整URL存入字符串变量再传入命令,也可避免特殊字符解析问题:

# 定义下载地址与保存路径
$downloadUrl = "http://FreeZipFiles.com/FreeZipFile (FREE!).zip"
$savePath = "C:\Users\MyUserName\Desktop\test.zip"
# 执行下载
Invoke-WebRequest $downloadUrl -Outfile $savePath

以上方法同样适用于URL包含空格、中文、&等其他特殊字符时的报错场景。

内容的提问来源于stack exchange,提问作者Maxwell Patrick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 14:27:02