带单引号的Powershell命令行参数将中断命令行

时间:2018-10-04 14:06:15

标签: powershell

我正在从批处理文件中调用Powershell脚本

powershell createshortcut.ps1 "%~n0"

但是,如果参数有单引号(扩展样本)

powershell createshortcut.ps1 "Divertirsi con l'ortografia"

解析器将抛出错误

The string is missing the terminator: '.
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : TerminatorExpectedAtEndOfString

显然参数的内容是未知的。

Powershell版本:

Major  Minor  Build  Revision
-----  -----  -----  --------
5      1      14393  2189

2 个答案:

答案 0 :(得分:1)

告诉PowerShell,它将处理-File而不是-Command

powershell -NoProfile -File createshortcut.ps1 "Divertirsi con l'ortografia"

答案 1 :(得分:0)

要么使用单个反引号(`)对其进行转义:

powershell createshortcut.ps1 "Divertirsi con l`'ortografia"

或将双引号替换为简单的双引号并使用''

powershell createshortcut.ps1 'Divertirsi con l''ortografia'