繁体   English   中英

Powershell 如何传递带特殊字符的参数

[英]Powershell how to pass parameter with special characters

我正在尝试将一个变量作为参数传递给 powershell 脚本。 变量有一些特殊字符,调用 ps1 脚本失败。

在这里,我只是创建了一个示例来显示问题。

PS C:\>$pass1 = '?q$*9-W$wcx)O.Ra)X-&6'

PS C:\>powershell -NoProfile -NonInteractive -ExecutionPolicy Bypass -Command 'echo '$pass1''

错误:

At line:1 char:26
+ echo  ?q$*9s8ubhD8c-W$wcx)O.Ra9)DX-D&6
+                          ~
Unexpected token ')' in expression or statement.
At line:1 char:32
+ echo  ?q$*9s8ubhD8c-W$wcx)O.Ra9)DX-D&6
+                                ~
Unexpected token ')' in expression or statement.
At line:1 char:37
+ echo  ?q$*9s8ubhD8c-W$wcx)O.Ra9)DX-D&6
+                                     ~
The ampersand (&) character is not allowed. The & operator is reserved for future use; wrap an ampersand in double quotation
marks ("&") to pass it as part of a string.
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : UnexpectedToken

在此处输入图像描述

您的脚本有语法错误,它似乎不是参数/变量的实际值的问题。

这是有语法错误的行:

powershell -NoProfile -NonInteractive -ExecutionPolicy Bypass -Command 'echo '$pass1''

这是你的问题所在:

'echo '$pass1''

你实际上在这里传递了 3 件事......

  1. 'echo '
  2. $pass1
  3. ''

第二个单引号退出字符串。

您需要根据需要使用它们的方式在单字符串和双字符串之间切换:

$pass1 = '?q$*9-W$wcx)O.Ra)X-&6'
powershell -Command "echo '$pass1'"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM