【发布时间】:2021-11-10 16:48:12
【问题描述】:
我正在使用第三方工具进行一些广告操作。我运行一个 powershell 脚本并向它传递参数。
一切都有效,除非该参数包含一个撇号,例如 Jerry O'Connor。我尝试了很多不同的逃生组合,但都没有运气。
这是我的命令:script.ps1 -name "'%name%'",名字包含 Jerry O'Connor。
错误是
Result:The string is missing the terminator: '.
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : TerminatorExpectedAtEndOfString
我试过了:
script.ps1 -name "'%name%'"script.ps1 -name \"%name%\"script.ps1 -name ''name''
都出现同样的错误。
如果你在 PS CMD 级别运行它,你会看到错误
powershell echo -name "'Jerry O'Connor'"
有人知道如何将参数传递给script.ps1 -name "name",其中该参数包含撇号吗?
干杯
【问题讨论】:
-
当我刚刚清理旧的 cmets 并遇到了你以前的问题时,我想知道是否是时候重新审视基础知识了(见下一条评论)——尽管令人困惑的是你已经接受了 一些回答你以前的问题,但我真的没有看到一个模式。也许您可以分享您的思考过程?
-
请允许我给你一个标准的建议给新手:如果你 accept 一个答案,你将帮助未来的读者,向他们展示解决了你的问题的方法。要接受答案,请单击答案左侧大数字下方的大 ✓ 符号(您将获得 2 点声望)。如果您至少有 15 个声望点,您还可以对其他有用的答案进行投票(也可以选择已接受的答案)。如果您的问题尚未解决,请提供反馈,或者,如果您自己找到了解决方案,请self-answer。
标签: powershell escaping quoting