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

PowerShell脚本报错:找不到接受参数‘+’的位置参数,求解决方案

解决思路

问题根源

你用+拼接搜索查询字符串时存在两个核心问题:

  1. PowerShell中,单引号包裹的字符串里"会被当作普通文本传递给Exchange,而非解析为双引号,导致搜索语法不符合Exchange要求;
  2. 未将拼接后的字符串整体作为单个参数传递,可能引发参数解析错误。

具体修复方案

  • 方案1:双引号插值(推荐)
    用双引号包裹整个查询语句,PowerShell会自动解析变量$filename,内部双引号用反引号`转义:

    $searchResults = Search-Mailbox -Identity $mailbox.Identity -SearchQuery "attachment:`"$filename`"" -EstimateResultOnly
    
  • 方案2:单引号拼接(修正版)
    去掉HTML实体转义的",改用实际双引号,并用括号将拼接后的字符串整体括起,确保作为单个参数传递:

    $searchResults = Search-Mailbox -Identity $mailbox.Identity -SearchQuery ('attachment:"' + $filename + '"') -EstimateResultOnly
    
  • 方案3:Here-String(适合特殊文件名)
    如果文件名包含空格、特殊字符,用Here-String可避免转义繁琐:

    $searchQuery = @"
    attachment:"$filename"
    "@
    $searchResults = Search-Mailbox -Identity $mailbox.Identity -SearchQuery $searchQuery -EstimateResultOnly
    

额外注意事项

  • 提前初始化$results数组:在脚本开头添加$results = @(),否则第一次执行$results += ...会报错;
  • 确认$filenames是有效的字符串数组,每个元素为纯文件名(无需自带引号)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 20:05:06