网址将%26解析为&在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?status=O&category=ALL&cust=!var1!&:size=1715,893" -f "D:\myfolder\!var2!\!var2!_1.png" --no-certche
pause
例如: 我将参数“A& B”传递给批处理文件。 在调用URL之前,var1变量具有以下值: A%20%26%20B,这是预期的。
一旦调用了网址,网址就会被解析为 A%20&%20B ,而是我试图获得 A%20%26%20B
我甚至尝试将&
替换为%25%26
,以便在执行时将其设为%26
,但是提示帮助。
有人可以帮忙解决这个问题。谢谢!
答案 0 :(得分:0)
好吧,如果你没有找到任何其他解决方案,你总是可以通过JScript混合方式借用JavaScript的encodeURIComponent
字符串方法。用.bat扩展名保存它并给它一个镜头。
@if (@CodeSection == @Batch) @then
@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%I in ('cscript /nologo /e:Jscript "%~f0" "%~1"') do set "%%I"
set var2=!var1:%%2C=!
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
goto :EOF
@end // end batch / begin JScript hybrid chimera
WSH.Echo('var1=' + encodeURIComponent(WSH.Arguments(0)));