使用脚本清理xxagent缓存ip
起因
GFW不知是不是贸易战原因,原有通过巨硬XBOX虚拟化terendo扫描出来的IP很快被污染
造成每次使用正向代理需要清除上一次生成的IP缓存列表文件
我原来都是使用手动方式进目录删除缓存,然后启动一个bat脚本ping 一个ipv6 地址,然后启动正代
但这样子做很明显第一步也是可以融合进脚本里的
脚本相当简单
但是,我写的脚本根本无法识别定义的缓存地址
WHY??
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| # 原来的脚本 @echo off
echo "输入1则删除ip缓存"
set/p opt=请输入选择
echo %pa% if "%opt%"=="1" (
set "pa=E:\Developer\project\github\XX-Net\data\gae_proxy\good_ip.txt" echo "删除IP缓存,地址:"%pa% del /f /s /q %pa% echo "缓存删除成功!"
)
start "ping feature" /min ping -n 127 -6 ipv6.test-ipv6.com -l 0 call C:\Windows\System32\wscript.exe "E:\Developer\project\github\XX-Net\start.vbs"
|
在删除缓存那一步一直报语法错误,经查证设定的变量pa是未定义的
set命令用了很多,但是在if当中使用是第一次 直觉告诉我问题可能出在这里
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| # 更改后的脚本 @echo off
echo "输入1则删除ip缓存"
set/p opt=请输入选择 set "pa=E:\Developer\project\github\XX-Net\data\gae_proxy\good_ip.txt" echo %pa% if "%opt%"=="1" ( echo "删除IP缓存,地址:"%pa% del /f /s /q %pa% echo "缓存删除成功!"
)
start "ping feature" /min ping -n 127 -6 ipv6.test-ipv6.com -l 0 call C:\Windows\System32\wscript.exe "E:\Developer\project\github\XX-Net\start.vbs"
|
这样就可以使用了
原因
原来这也不叫if中无法定义变量
是复合语句需要使用变量延迟的手段
1 2 3 4 5 6
| setlocal enabledelayedexpansion if "%opt%"=="1" ( set pa=0 echo !pa! ) endlocal
|
开启变量延迟就可以了
能否参与评论,且看个人手段。