Windows 使用替换方法对url进行批处理编码

Windows 使用替换方法对url进行批处理编码,windows,batch-file,urlencode,Windows,Batch File,Urlencode,似乎找不到使用批处理对url进行编码的方法,所以我记得进行替换 问题是url编码使用了%,我认为这是我的代码无法工作的问题 ex: SET varr=!varr:#=%23! 有人知道怎么做吗? 下面是完整的代码(由于堆栈长度问题,没有一些url编码) @ECHO关闭 Setlocal EnableDelayedExpansion SET varr={“temRazs”:{“es”:{“ted”:[],“items”:[{“cod”:“1234567”,“nam”:“patrick”,“whe

似乎找不到使用批处理对url进行编码的方法,所以我记得进行替换

问题是url编码使用了%,我认为这是我的代码无法工作的问题

ex: SET varr=!varr:#=%23!
有人知道怎么做吗? 下面是完整的代码(由于堆栈长度问题,没有一些url编码)

@ECHO关闭
Setlocal EnableDelayedExpansion
SET varr={“temRazs”:{“es”:{“ted”:[],“items”:[{“cod”:“1234567”,“nam”:“patrick”,“where”:“ggf”,“tip”:“P”,false,“shared”:false,“verid”:“1064.0ada83b2-3a3f-46a3-95b7-35b8c9ed8f24”,“className”:“myclassname”}}
设置varr=!varr:=%22!
设置varr=!varr:#=%23!
设置varr=!varr:$=%24!
设置varr=!varr:%=%25!
设置varr=!varr:&=%26!
设置varr=!varr:'=%27!
设置varr=!varr:(=%28!
设置varr=!varr:)=%29!
设置varr=!varr:=%2A!
设置varr=!varr:+=%2B!
设置varr=!varr:,=%2C!
设置varr=!varr:-=%2D!
设置varr=!varr:.=%2E!
设置varr=!varr://=%2F!
设置varr=!varr:0=%30!
设置varr=!varr:1=%31!
设置varr=!varr:9=%39!
设置varr=!varr::=%3A!
设置varr=!varr:;=%3B!
设置varr=!varr:=%3E!
设置varr=!varr:?=%3F!
设置varr=!varr:@=%40!
设置varr=!varr:A=%41!
设置varr=!varr:[=%5B!
设置varr=!varr:\=%5C!
设置varr=!varr:=%5D!
设置varr=!varr:^=%5E!
设置varr=!varr:\%5F!
设置varr=!varr:`=%60!
设置varr=!varr:z=%7A!
设置varr=!varr:{=%7B!
设置varr=!varr:|=%7C!
设置varr=!varr:}=%7D!
设置varr=!varr:~=%7E!
设置varr=!varr:,=%B4!
设置varr=!varr:µ=%B5!
设置varr=!varr:»=%BB!
设置varr=!varr:¼=%BC!
设置varr=!varr:½=%BD!
设置varr=!varr:?=%BF!
设置varr=!varr:À=%C0!
设置varr=!varr:Á=%C1!
设置varr=!varr:c=%C2!
设置varr=!varr:Ã=%C3!
设置varr=!varr:Ä=%C4!
设置varr=!varr:Å=%C5!
设置varr=!varr:Æ=%C6!
设置varr=!varr:ch=%C7!
设置varr=!varr:È=%C8!
设置varr=!varr:赤道=%C9!
设置varr=!varr:ô=%F4!
设置varr=!varr:õ=%F5!
设置varr=!varr:ö=%F6!
设置varr=!varr:÷=%F7!
回声1
暂停
设置urll=!varr!)
回显%urll%
暂停

谢谢

您需要将百分比符号加倍。您还应该将所有
SET
命令用双引号括起来。
SET“varr=!varr:|=%%7C!"
您想对所有256个扩展ascii字符进行编码吗?另外,您只需要编码,
%
@zett42,您很好地指出了百分比符号。他们正在编码百分比符号,但这实际上需要是第一个需要编码的字符,否则它将尝试对之前的所有百分比符号进行编码已编码的ols。您需要将百分比符号加倍。还应将所有
SET
命令用双引号括起来。
SET“varr=!varr:|=%%7C!”
您想对所有256个扩展ascii字符进行编码吗?另外,您只需要编码,
%
@zett42,您很好地指出了百分比符号。他们正在编码百分比符号,但这实际上需要是第一个需要编码的字符,否则它将尝试对之前的所有百分比符号进行编码已编码的ols。
        @ECHO OFF
    Setlocal EnableDelayedExpansion

    SET varr={"temRazs":{"es":{"ted":[],"items":[{"cod":"1234567","nam":"patrick","where":"ggf","tip":"P",false,"shared":false,"verid":"1064.0ada83b2-3a3f-46a3-95b7-35b8c9ed8f24","className":"myclassname"}}}
        SET varr=!varr:"=%22!
        SET varr=!varr:#=%23!
        SET varr=!varr:$=%24!
        SET varr=!varr:%=%25!
        SET varr=!varr:&=%26!
        SET varr=!varr:'=%27!
        SET varr=!varr:(=%28!
        SET varr=!varr:)=%29!
        SET varr=!varr:*=%2A!
        SET varr=!varr:+=%2B!
        SET varr=!varr:,=%2C!
        SET varr=!varr:-=%2D!
        SET varr=!varr:.=%2E!
        SET varr=!varr:/=%2F!
        SET varr=!varr:0=%30!
        SET varr=!varr:1=%31!
        SET varr=!varr:9=%39!
        SET varr=!varr::=%3A!
        SET varr=!varr:;=%3B!
        SET varr=!varr:<=%3C!
        SET varr=!varr:==%3D!
        SET varr=!varr:>=%3E!
        SET varr=!varr:?=%3F!
        SET varr=!varr:@=%40!
        SET varr=!varr:A=%41!
        SET varr=!varr:[=%5B!
        SET varr=!varr:\=%5C!
        SET varr=!varr:]=%5D!
        SET varr=!varr:^=%5E!
        SET varr=!varr:_=%5F!
        SET varr=!varr:`=%60!
        SET varr=!varr:z=%7A!
        SET varr=!varr:{=%7B!
        SET varr=!varr:|=%7C!
        SET varr=!varr:}=%7D!
        SET varr=!varr:~=%7E!
        SET varr=!varr:,=%B4!
        SET varr=!varr:µ=%B5!
        SET varr=!varr:»=%BB!
        SET varr=!varr:¼=%BC!
        SET varr=!varr:½=%BD!
        SET varr=!varr:¿=%BF!
        SET varr=!varr:À=%C0!
        SET varr=!varr:Á=%C1!
        SET varr=!varr:Â=%C2!
        SET varr=!varr:Ã=%C3!
        SET varr=!varr:Ä=%C4!
        SET varr=!varr:Å=%C5!
        SET varr=!varr:Æ=%C6!
        SET varr=!varr:Ç=%C7!
        SET varr=!varr:È=%C8!
        SET varr=!varr:É=%C9!
        SET varr=!varr:ô=%F4!
        SET varr=!varr:õ=%F5!
        SET varr=!varr:ö=%F6!
        SET varr=!varr:÷=%F7!
    echo 1
    pause
    set urll=!varr!)     
    echo %urll% 
    Pause