小编Eno*_*han的帖子

如何在 PowerShell 中转义特殊字符?

当我的 PowerShell 脚本运行时,它会提示用户输入密码参数。该密码可以包含任意数量的特殊字符,如 *\~;(%?.:@/ 然后该密码用作 .exe 命令的参数,但由于某些特殊字符没有正确转义,它通常不正确。

一个过去的密码示例是 $(?-.?-(。我需要转义的唯一字符是 '(',我将其替换为 '`(' 以使其工作。但是,该密码现在已过期。新密码类似于 *\~;~(%?.:@/ *注意:这些密码也混合了随机数字和字母,但已被编辑。

新密码中的唯一字符不是第一个是 *\~;%:@/ 是否有一种简单的方法可以转义所有字符并按原样接受任何用户输入?如果没有,有人介意帮我逃脱这些特殊字符吗?


param (
    [Parameter(Mandatory=$true)][string]$password
)
Run Code Online (Sandbox Code Playgroud)

上面的代码位于脚本的前面,使控制台提示用户输入。

Invoke-Expression -Command "<path_to_exe> -install $user $password"
Run Code Online (Sandbox Code Playgroud)

^这是使用该密码参数的命令


我在 Stack Overflow、Reddit 和其他各种编码论坛/博客上尝试了许多其他建议,但都没有奏效。任何帮助深表感谢!

parameters powershell escaping

3
推荐指数
2
解决办法
2万
查看次数

标签 统计

escaping ×1

parameters ×1

powershell ×1