Batch file 批处理文件和URL编码中的转义符号
URL解析%26 to&on tabcmd调用并将其设置为错误的URL 我的批处理文件如下:Batch file 批处理文件和URL编码中的转义符号,batch-file,cmd,tableau-api,Batch File,Cmd,Tableau Api,URL解析%26 to&on tabcmd调用并将其设置为错误的URL 我的批处理文件如下: @echo off setlocal enabledelayedexpansion set str=%1 set str=!str:^&=%%26! set var1=!str! set var1=!var1: =%%20! set var2=!var1! set var2=!var2:,=! tabcmd get "views/tableau_workbook/first_page.png
@echo off
setlocal enabledelayedexpansion
set str=%1
set str=!str:^&=%%26!
set var1=!str!
set var1=!var1: =%%20!
set var2=!var1!
set var2=!var2:,=!
tabcmd get "views/tableau_workbook/first_page.png?status=O&category=ALL&cust=!var1!&:size=1715,893" -f "D:\myfolder\!var2!\!var2!_1.png" --no-certche
pause
例如:
我正在将参数“A&B”传递给批处理文件。
var1变量在调用URL之前具有以下值:
A%20%26%20B,这是预期的
一旦调用URL,URL将解析为A%20&%20B,但我正在尝试获取A%20%26%20B
我甚至尝试将&
替换为%25%26
,以使其在执行时出现在URL上,但毫无帮助
有人能帮忙解决这个问题吗。谢谢 好吧,如果你找不到任何其他解决方案,你可以通过JScript混合体借用JavaScript的
encodeURIComponent
string方法。使用.bat扩展名保存此文件,并尝试一下
@如果(@code节==@Batch)@那么
@回音
延迟扩展
对于/f“delims=“%%I in('cscript/nologo/e:Jscript“%~f0”“%~1“),请设置“%%I”
设置var2=!var1:%%2C=!
tabcmd get“views/tableau\u workbook/first\u page.png?status=O&category=ALL&cust=!var1!&:size=1715893”-f“D:\myfolder\!var2!\!var2!\u 1.png”--无证书
暂停
后藤:EOF
@结束//结束批处理/开始JScript混合嵌合体
Echo('var1='+encodeURIComponent(WSH.Arguments(0));
尝试引用所有作业:设置“str=something”
(注意开头的引号位置)。如果批次结束,很难重现,请简化示例:)?类似:用法:<代码>假命令“A和B”<代码>代码>代码> ECH% 1 >如果我的答案有帮助,请考虑将其标记为接受。如果没有,那么您能否提供一些不符合您批准的反馈?