Cygwin安装器交互式bat自动调用脚本

stevehe 2021年07月20日 228次浏览
@echo off
set "PATH=%~dp0bin;%path%"
echo.
echo	 =======当前配置=======
echo.
bash --login -c "echo mirror=`apt-cyg mirror`;echo cache=`apt-cyg cache`;echo;apt-cyg proxy 2>/dev/null"
echo.
echo	 ========end===========
echo.
echo  请输入序号选择要使用的镜像源,直接回车跳过选择使用上一次的镜像源。
echo.
echo  1.阿里云镜像  【http://mirrors.aliyun.com/cygwin/】
echo  2.网易开源镜像 【http://mirrors.163.com/cygwin/】
echo  3.清华大学开源镜像 【https://mirrors.tuna.tsinghua.edu.cn/cygwin/】
echo  4.中国科学技术大学镜像 【http://mirrors.ustc.edu.cn/cygwin/】
echo  5.腾讯云镜像【https://mirrors.cloud.tencent.com/cygwin/】
echo  6.华为云开源镜像【https://mirrors.huaweicloud.com/cygwin/】 
echo  7.北京外国语大学镜像【教育网和移动网络优秀,清华大学镜像姊妹站 https://mirrors.bfsu.edu.cn/cygwin/】 
echo  8.浙江大学镜像【浙江大学镜像 http://mirrors.zju.edu.cn/cygwin/】
echo  9.mirrors kernel上游【http://mirrors.kernel.org/sourceware/cygwin/】
echo  10.加州sonic镜像【https://mirrors.sonic.net/cygwin/】
echo.
set mirror=0
set /p mirrornum=请选择:
if "%mirrornum%"=="1" ( echo 设置阿里云镜像 && call :setmirror http://mirrors.aliyun.com/cygwin/ )
if "%mirrornum%"=="2" ( echo 设置网易镜像 && call :setmirror http://mirrors.163.com/cygwin/ )
if "%mirrornum%"=="3" ( echo 设置清华大学镜像 && call :setmirror https://mirrors.tuna.tsinghua.edu.cn/cygwin/ )
if "%mirrornum%"=="4" ( echo 设置中国科学技术大学镜像 && call :setmirror http://mirrors.ustc.edu.cn/cygwin/ )
if "%mirrornum%"=="5" ( echo 设置腾讯云镜像 && call :setmirror https://mirrors.cloud.tencent.com/cygwin/ )
if "%mirrornum%"=="6" ( echo 设置华为云镜像 && call :setmirror https://mirrors.huaweicloud.com/cygwin/ )
if "%mirrornum%"=="7" ( echo 设置北京外国语大学镜像 && call :setmirror https://mirrors.bfsu.edu.cn/cygwin/ )
if "%mirrornum%"=="8" ( echo 设置浙江大学镜像 && call :setmirror http://mirrors.zju.edu.cn/cygwin/ )
if "%mirrornum%"=="9" ( echo 设置mirrors kernel上游镜像 && call :setmirror http://mirrors.kernel.org/sourceware/cygwin/ )
if "%mirrornum%"=="10" ( echo 设置加州sonic镜像 && call :setmirror https://mirrors.sonic.net/cygwin/ )

echo.
echo 是否使用代理服务器,输入代理服务器地址和端口回车设置服务器(eg:127.0.0.1:1080),支持HTTP/HTTPS代理服务器地址,若是SOCKS代理请先转为HTTP;
echo 如需禁用代理服务器,本地网络直连镜像服务器,输入 0 回车:
echo 直接回车跳过设置,即使用上一次遗留的代理配置:
set "proxy="
set /p proxyselect=设置代理服务器地址^/模式:
if not "%proxyselect%"=="" if not "%proxyselect%"=="0"  (
set "proxy=-p %proxyselect%"
)
if "%proxyselect%"=="0" ( echo 设置不使用代理服务器... && call :setproxy Direct )

REM pause
start "" %~dp0setup-x86_64.exe %proxy%
exit

:setmirror
REM echo %1
REM echo this is setmirror section
bash --login -c "apt-cyg mirror %1"
echo	 刷新配置...
bash --login -c "echo mirror=`apt-cyg mirror`"
goto :eof

:setproxy
REM echo %1
REM echo this is clear proxy host setting section
bash --login -c "apt-cyg proxy %1"
echo	 刷新配置...
bash --login -c "echo mirror=`apt-cyg proxy`"
goto :eof

image.png

image.png