当我的PowerShell脚本运行时,会提示用户输入一个密码参数。该密码可以包含任意数量的特殊字符,如*\~;(%?.:@/。然后将该密码用作.exe命令的参数,但由于某些特殊字符没有正确转义,因此它经常不正确。
一个旧密码示例是$(?-.?-(。我需要转义的唯一字符是'(',我用'`('替换它以使其正常工作。但是,该密码现在已过期。新密码类似于*\~;~(%?.:@/ *注意:这些密码也混合了随机数字和字母,但已被编辑掉。
新密码中唯一不在旧密码中的字符是*\~;%:@/。是否有一种简便的方法来转义所有的字符并只接受任何用户输入?如果没有,那么有没有人愿意帮助我转义这些特殊字符?
上述代码在脚本之前加了一个前缀,导致控制台提示用户输入。
一个旧密码示例是$(?-.?-(。我需要转义的唯一字符是'(',我用'`('替换它以使其正常工作。但是,该密码现在已过期。新密码类似于*\~;~(%?.:@/ *注意:这些密码也混合了随机数字和字母,但已被编辑掉。
新密码中唯一不在旧密码中的字符是*\~;%:@/。是否有一种简便的方法来转义所有的字符并只接受任何用户输入?如果没有,那么有没有人愿意帮助我转义这些特殊字符?
param (
[Parameter(Mandatory=$true)][string]$password
)
上述代码在脚本之前加了一个前缀,导致控制台提示用户输入。
Invoke-Expression -Command "<path_to_exe> -install $user $password"
这是使用密码参数的命令。
我尝试了许多在Stack Overflow、Reddit和其他各种编码论坛/博客上的建议,但都没有奏效。非常感谢任何帮助!
& 'C:\path\to\your.exe' -install $user $password
可以实现你想要的功能。 - Ansgar Wiechers