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

PowerShell调用含通配符参数的工具时参数解析异常求助

如何让命令行工具接收未被Shell解析的*通配符参数?

问题场景

我正在开发一款需要接收文件模式作为参数的工具,预期调用方式如下:

mytool arg1 *

实际遇到的问题:

  • Shell会优先将*解析为当前目录下的所有文件,导致工具收到的是一堆文件名而非*本身
  • 若用反引号转义*,工具会连转义符一起接收,不符合需求

可行解决方案

  • 用单引号包裹*:Shell不会解析单引号内的通配符,工具可直接获取*
    mytool arg1 '*'
    
  • 用双引号包裹*:通用场景下,双引号内的*不会被Shell解析
    mytool arg1 "*"
    
  • 用反斜杠转义*:反斜杠会被Shell识别为转义标记,仅将*传递给工具
    mytool arg1 \*
    
  • 工具端适配(可选):如果希望用户无需额外转义,可在工具内做逻辑判断:
    • 检测到参数为当前目录全量文件列表时,自动合并为*(注意:该方法存在歧义,需结合业务场景谨慎使用)
    • 若工具通过Shell脚本实现,可在开头添加set -f关闭通配符解析

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 23:40:20