这是我的剧本:
@rasdial "My VPN" "user@domain" 'my<password'
我的密码包含<
个字符。输入PowerShell控制台后,没有@
的情况就可以了。
我知道`
是引用字符,但显然它不适用于<
。
我的密码包含许多特殊字符,因此必须引用它。但是当使用双引号时它不起作用。如何正确转义密码?有没有办法从外部文件导入它? BTW,rasphone.exe记得我的密码,也许有办法使用它?
这是我找到的解决方案。我使用双引号而不是单引号。它在第一时间无效,因为我的真实密码中还有%
,需要引用%%
。
因此,在.cmd脚本内部:'my%`<password'
无法使用,但"my%%<password"
将会有效。
任何人都可以确认他在.cmd脚本中使用了'...`<...'
之类的字符串吗?它在不同的PowerShell版本中表现不同吗?我的是Windows 8 x64。
答案 0 :(得分:2)
你试过了吗?
'my`<password'
`&lt; ---代号键反引号是Powershell转义字符。
我还鼓励使用-AsSecureString
在PS控制台中进行测试:
PS C:\Users\Athomsfere> $pw = 'my<password'
PS C:\Users\Athomsfere> write-host $pw
my<password
所以它本身不是角色。
它仍然像这样:(作为剧本)
'@rasdial', "My VPN", "user@domain", 'my<password' |`
ForEach
{
Write-Host $_
}
答案 1 :(得分:0)
我遇到了类似的问题,花了我一段时间才找到根底。就我而言,我的密码与此相似
} K)/] j .. | {?*&%($ @ 7} e $%0>; ._#
将其放在双引号中可以进行变量扩展,因此显然无法正常工作。 用单引号括起来应该是可行的,但对我而言却不是。用问号转义问题字符对我也不起作用。
对我有用的是先用单引号引起来,然后用双引号引起来
'“} K)/] j .. | {?*&%($ @ 7} e $%0>; ._#”'