在CMD中使用时如何转义密码中的特殊字符
How to escape the special characters in a password when using in CMD
我有这个密码,;d#se#&4~75EY(H[SM"%cznGB
。
我需要在自动创建的命令行命令中使用它。
(将其用于 TFS 发布管道,创建虚拟目录,此密码属于服务用户并作为秘密输入保存在全局变量中,TFS 将该密码字符串放在双引号中创建命令)。
很难转义其中的特殊字符。
到目前为止,我尝试的是通过 ^
转义所有字母数字字符,并通过加倍转义 %
和 "
字符。但到目前为止,运气不佳:(
失败的尝试列表是这些。
;d#se#&4~75EY^(H[SM""%%cznGB
;d#se#&4~75EY(H[SM\"%%cznGB
^;d^#se^#^&4^~75EY^(H^[SM""%%cznGB
^;d^#se^#^&4^~75EY^(H^[SM\"^%cznGB
^;d^#se^#^&4^~75EY^(H^[SM\"%%cznGB
^;d^#se^#^&4^~75EY^(H^[SM""^%%cznGB
;d#se#&4~75EY(H[SM"^^^%%cznGB
;d#se#&4~75EY(H[SM"^^^^%%cznGB
;d#se#&4~75EY(H[SM^""^%%cznGB
^;d^#se^#^&4^~75EY^(H^[SM^""^%%cznGB
^;d^#se^#^&4^~75EY^(H^[SM^""%%cznGB
;d#se#&4~75EY(H[SM""%%cznGB
能否帮我找到正确的转义字符串,以便在批处理中或在 CMD 中将其用作内联命令?
在有人因为我发布密码而对这个问题投反对票之前,我在发布之前编辑了很多部分。只是说:)
更新:
正如我在问题中提到的,TFS 创建了一个命令文本来为特定的 Web 应用程序将虚拟文件夹访问凭据设置为 IIS。日志显示这样的命令文本。
"C:\WINDOWS\system32\inetsrv\appcmd.exe" set vdir /vdir.name:"appfolder/Files" -physicalPath:"\servername\virtualfolder" -userName:"sa_user@domain.com" -password:";d#se#&4~75EY(H[SM"%cznGB"
(我按原样输入密码,用于此输出)
rem // enable delayed expansion to expand other poison characters safely
@Echo off & setlocal EnableExtensions EnableDelayedExpansion
rem // escape % character by doubling
Set "PW=;d#se#&4~75EY(H[SM"%%cznGB"
"C:\WINDOWS\system32\inetsrv\appcmd.exe" set vdir /vdir.name:"appfolder/Files" -physicalPath:"\servername\virtualfolder" -userName:"sa_user@domain.com" -password:"!PW!"
Endlocal
这个所有字符转义的东西多么有趣!
我继续搜索,阅读我能找到的所有内容。结果是所有应该用双引号转义的都是双引号本身...
(如果我遗漏了什么,请纠正我,这对我来说是正确的)
应该在 TFS 变量中使用的结果字符串(我测试过,它有效!)是这样的:
;d#se#&4~75EY(H[SM""%cznGB
我唯一添加到原始密码的是双引号附近的另一个双引号。
这个答案对我很有帮助。难怪为什么自己做实验比阅读大量文章更有效:/
感谢所有对此主题发表评论并留下答案的人。
我有这个密码,;d#se#&4~75EY(H[SM"%cznGB
。
我需要在自动创建的命令行命令中使用它。
(将其用于 TFS 发布管道,创建虚拟目录,此密码属于服务用户并作为秘密输入保存在全局变量中,TFS 将该密码字符串放在双引号中创建命令)。
很难转义其中的特殊字符。
到目前为止,我尝试的是通过 ^
转义所有字母数字字符,并通过加倍转义 %
和 "
字符。但到目前为止,运气不佳:(
失败的尝试列表是这些。
;d#se#&4~75EY^(H[SM""%%cznGB
;d#se#&4~75EY(H[SM\"%%cznGB
^;d^#se^#^&4^~75EY^(H^[SM""%%cznGB
^;d^#se^#^&4^~75EY^(H^[SM\"^%cznGB
^;d^#se^#^&4^~75EY^(H^[SM\"%%cznGB
^;d^#se^#^&4^~75EY^(H^[SM""^%%cznGB
;d#se#&4~75EY(H[SM"^^^%%cznGB
;d#se#&4~75EY(H[SM"^^^^%%cznGB
;d#se#&4~75EY(H[SM^""^%%cznGB
^;d^#se^#^&4^~75EY^(H^[SM^""^%%cznGB
^;d^#se^#^&4^~75EY^(H^[SM^""%%cznGB
;d#se#&4~75EY(H[SM""%%cznGB
能否帮我找到正确的转义字符串,以便在批处理中或在 CMD 中将其用作内联命令?
在有人因为我发布密码而对这个问题投反对票之前,我在发布之前编辑了很多部分。只是说:)
更新:
正如我在问题中提到的,TFS 创建了一个命令文本来为特定的 Web 应用程序将虚拟文件夹访问凭据设置为 IIS。日志显示这样的命令文本。
"C:\WINDOWS\system32\inetsrv\appcmd.exe" set vdir /vdir.name:"appfolder/Files" -physicalPath:"\servername\virtualfolder" -userName:"sa_user@domain.com" -password:";d#se#&4~75EY(H[SM"%cznGB"
(我按原样输入密码,用于此输出)
rem // enable delayed expansion to expand other poison characters safely
@Echo off & setlocal EnableExtensions EnableDelayedExpansion
rem // escape % character by doubling
Set "PW=;d#se#&4~75EY(H[SM"%%cznGB"
"C:\WINDOWS\system32\inetsrv\appcmd.exe" set vdir /vdir.name:"appfolder/Files" -physicalPath:"\servername\virtualfolder" -userName:"sa_user@domain.com" -password:"!PW!"
Endlocal
这个所有字符转义的东西多么有趣! 我继续搜索,阅读我能找到的所有内容。结果是所有应该用双引号转义的都是双引号本身...
(如果我遗漏了什么,请纠正我,这对我来说是正确的)
应该在 TFS 变量中使用的结果字符串(我测试过,它有效!)是这样的:
;d#se#&4~75EY(H[SM""%cznGB
我唯一添加到原始密码的是双引号附近的另一个双引号。
这个答案对我很有帮助。难怪为什么自己做实验比阅读大量文章更有效:/
感谢所有对此主题发表评论并留下答案的人。