PowerShell脚本输出至Discord时Out-String参数错误求助
解决PowerShell中Out-String的位置参数错误
错误原因
这个错误是因为Out-String收到了不兼容的位置参数,常见触发场景:
- 换行用的反引号(`)后面意外附带了数组类型内容,被当成位置参数传入
$summaries的输出被错误识别为Out-String的参数,而非管道输入- 错误省略了
Out-String的参数名称,导致参数解析混乱
修复方案
1. 修正换行与参数写法
如果是为了换行拆分代码,要确保Out-String的参数必须带参数名,且反引号后无多余内容:
# 带参数的正确换行写法 content = $summaries | Out-String ` -Width 150 # 仅当需要自定义宽度时添加,参数名不能省略
如果不需要额外参数,直接简化为:
content = $summaries | Out-String
2. 确保管道输入正常传递
如果$summaries是复杂对象数组,先通过ForEach-Object统一处理,避免对象被误解析为参数:
content = $summaries | ForEach-Object { $_ } | Out-String
3. 替代方案:直接拼接字符串
如果只需要将数组元素转为换行分隔的字符串,用-join更高效:
content = $summaries -join "`n"
验证
执行修复后的代码,检查$content是否正确生成字符串内容,再传入Discord请求即可。
内容的提问来源于stack exchange,提问作者nbdyso
相关产品推荐
相关产品推荐

