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

Powershell中使用tshark时双引号转义问题求助

PowerShell中执行tshark过滤命令的转义问题解决

在CMD中可正常执行的tshark命令:

tshark -r a.pcapng -Y "http.request.uri == \"/test.php\" || http.response"

但在PowerShell中转义双引号时容易出错,你尝试的命令:

tshark -r 0.pcapng -Y "http.request.uri == `"\/test.php`" || http.response"

报错信息:

tshark: "" was unexpected in this context. http.request.uri == /test.php` || http.response
^

问题原因

PowerShell的字符串转义逻辑和CMD完全不同:

  • CMD用\转义双引号,但PowerShell中,双引号包裹的字符串里,需用**连续两个双引号""**转义内部双引号;
  • 反引号是PowerShell的通用转义符,但用它转义双引号时,会导致被传递给tshark,触发语法错误,同时额外的\也是多余的。

正确的两种执行方式

  1. 双引号包裹参数,内部双引号用""转义
tshark -r 0.pcapng -Y "http.request.uri == ""/test.php"" || http.response"
  1. 单引号包裹参数,内部双引号无需转义
    PowerShell中,单引号包裹的字符串是「原样字符串」,内部的特殊字符不会被解析,直接传递给tshark:
tshark -r 0.pcapng -Y 'http.request.uri == "/test.php" || http.response'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 20:10:02