Powershell中的双引号问题
double quote issue in powershell
我试图将安装参数传递给 powershell 中的一个变量,但我在这样做时遇到了错误。
$InstallString = "$InstallLocation\application.exe" /install / quiet CID="BsDdfi3kj" Tag="CinarCorp"
我试过运行把它放在“&”符号上,但是没有用,我查了很多网站都解决不了。任何帮助将不胜感激。
谢谢..
=
右侧使用的语法仅在直接调用如下命令时有效:
& "$InstallLocation\application.exe" /install /quiet CID="BsDdfi3kj" Tag="CinarCorp"
请注意,您在 quiet
之前有一个虚假的 space 字符,我将其删除。
当你真的想把命令存储在一个变量中时,像这样改变语法:
$InstallString = "`"$InstallLocation\application.exe`" /install /quiet CID=`"BsDdfi3kj`" Tag=`"CinarCorp`""
我将整个字符串包含在 double-quotes 中,并通过在它们前面放置一个反引号来转义内部 double-quotes。
您也可以使用 here-string 来避免必须转义内部 double-quotes:
$InstallString = @"
"$InstallLocation\application.exe" /install /quiet CID="BsDdfi3kj" Tag="CinarCorp"
"@
请注意,实际字符串以及最后的 "@
必须从行首开始。如果缩进实际的字符串,spaces/tabs 会包含在变量中,这通常是不需要的。
如果你坚持缩进,你当然可以 trim 字符串:
$InstallString = @"
"$InstallLocation\application.exe" /install /quiet CID="BsDdfi3kj" Tag="CinarCorp"
"@.Trim()
我建议阅读 about Quoting Rules 了解更多详情。
我试图将安装参数传递给 powershell 中的一个变量,但我在这样做时遇到了错误。
$InstallString = "$InstallLocation\application.exe" /install / quiet CID="BsDdfi3kj" Tag="CinarCorp"
我试过运行把它放在“&”符号上,但是没有用,我查了很多网站都解决不了。任何帮助将不胜感激。
谢谢..
=
右侧使用的语法仅在直接调用如下命令时有效:
& "$InstallLocation\application.exe" /install /quiet CID="BsDdfi3kj" Tag="CinarCorp"
请注意,您在 quiet
之前有一个虚假的 space 字符,我将其删除。
当你真的想把命令存储在一个变量中时,像这样改变语法:
$InstallString = "`"$InstallLocation\application.exe`" /install /quiet CID=`"BsDdfi3kj`" Tag=`"CinarCorp`""
我将整个字符串包含在 double-quotes 中,并通过在它们前面放置一个反引号来转义内部 double-quotes。
您也可以使用 here-string 来避免必须转义内部 double-quotes:
$InstallString = @"
"$InstallLocation\application.exe" /install /quiet CID="BsDdfi3kj" Tag="CinarCorp"
"@
请注意,实际字符串以及最后的 "@
必须从行首开始。如果缩进实际的字符串,spaces/tabs 会包含在变量中,这通常是不需要的。
如果你坚持缩进,你当然可以 trim 字符串:
$InstallString = @"
"$InstallLocation\application.exe" /install /quiet CID="BsDdfi3kj" Tag="CinarCorp"
"@.Trim()
我建议阅读 about Quoting Rules 了解更多详情。