我正在自动化 RSA 软令牌转换并将转换字符串传递给 Outlook。我意识到我无法使用批处理到 Outlook 命令行将字符串转换为 URL,但这不是我的问题。我的问题是将讨厌的等号转换为它的 URL 编码等效项“%3D”。
@echo off
setlocal enableDelayedExpansion
set /p fname=Enter the Filename:
set /p pss=Enter the encryption pass:
IF NOT EXIST "%fname%".sdtid (
echo File Not Found! Closing...
PING 1.1.1.1 -n 4 >NUL
exit
)
echo File Found! starting process...
REM tokenconverter %fname%.sdtid -iphone >> temp_batch.txt
tokenconverter %fname%.sdtid -p %pss% -iphone >> temp_batch.txt
set /p result= < temp_batch.txt
DEL temp_batch.txt
REM %result% | clip
set "stringclean1=!result:?=%%3F!"
set "stringclean2=!stringclean1::=%%3A!"
set "stringclean3=!stringclean2:/=%%2F!"
以下行无法对等号进行编码:
set "stringclean4=!stringclean3:==%%3D!"
我试过了:
set "stringclean4=!stringclean3:=^=%%3D!"
set "stringclean4=!stringclean3:=%=%%3D!"
但是等号仍然未编码。
echo Piping over to outlook..
REM passing stringclean3 since stringclean4 no worky.
pushd "C:\Program Files\Microsoft Office\Office12"
outlook.exe /c ipm.note /m "&subject=TEsT&body=%stringclean3%"
使用延迟变量扩展对等号进行 URL 编码的正确方法是什么?
任何帮助表示赞赏。提前致谢。