在 PowerShell 中转义变量中的特殊字符

loc*_*oct 4 powershell escaping

我在 PowerShell 中有一个变量,其中包含特殊字符,例如“<”、“>”和双引号。目前我正在使用类似-replace ">" , "^>", -replace "<" , "^<",的东西-replace '"' , "'"。有没有办法转义该变量中的所有特殊字符?

小智 7

将变量括在括号中,即

\n
${<My-Variable>with<Special-Characters>} ="<test>"\n${<My-Variable>with<Special-Characters>}\n
Run Code Online (Sandbox Code Playgroud)\n

退货

\n
<test>\n
Run Code Online (Sandbox Code Playgroud)\n

下面的内容取自 Stack Overflow 上的另一篇文章,但我无法\xe2\x80\x99 找到链接。

\n

如果它是包含特殊字符的变量,这应该可以工作。在@" "@ 分隔符内,变量和子表达式将被扩展,但引号和其他特殊字符将被视为文字。

\n
$SpecialCharacters = @'\n& "C:\\Program Files\\7-Zip\\7z.exe" u -mx5 -tzip -r "$DestFileZip" "$DestFile"\n'@\n\n$SpecialCharacters\n
Run Code Online (Sandbox Code Playgroud)\n

  • **变量内容**包含特殊字符。不是变量名本身。 (5认同)