|
- @echo off
- setlocal enabledelayedexpansion
- set cmdstr=rsync
- set zipfile=cwrsync.zip
- set downurl=https://itefix.net/dl/free-software/cwrsync_6.3.0_x64_free.zip
- set currpath=%~dp0
- set "rsynchome=%ProgramFiles%\%zipfile:~0,-4%"
- set passfile=%temp%\.password
- set syncdir=dist/
- :: 以下需要配置同步服务器
- set accountwithost=kszny@47.96.93.140::line
- set "password=kszny@123"
- set "runcommand=%cmdstr% --port=873 -rlptvz --progress --password-file=%passfile% --exclude=google.exe --exclude=Lodap.zip %syncdir% %accountwithost%"
-
- where %cmdstr% >nul 2>nul
- ::有错误输出,说明不存在该命令
- if %errorlevel% neq 0 (
- ::还未下载安装包或未正常解压到安装目录
- if not exist "%rsynchome%" (
- :: 请求提升管理员权限
- echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\runAsAdmin.vbs"
- echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\runAsAdmin.vbs"
- "%temp%\runAsAdmin.vbs"
- :: 需要提升管理员权限才能创建此目录
- mkdir "%rsynchome%"
- del "%temp%\runAsAdmin.vbs"
- exit /B
- )
-
- :: 使用powershell的curl下载软件包
- powershell curl -o %temp%\%zipfile% %downurl%
- :: 解压
- tar -xf "%temp%\%zipfile%" -C "%rsynchome%"
- echo "%cmdstr%已经安装到了%rsynchome%目录下"
-
- :: 检查路径是否存在于 PATH 中
- set "found=false"
- for %%I in ("%PATH:;=";"%") do (
- if /I "%%~I"=="%rsynchome%\bin" (
- set "found=true"
- )
- )
-
- :: 未设置到path变量中,添加到path变量
- if "!found!"=="false" (
- :: 更新注册表中的 PATH 变量,通过setx方式,变量值长度超过1024个字符就会被截断
- reg add "HKCU\Environment" /v PATH /t REG_EXPAND_SZ /d "%PATH%;%rsynchome%\bin" /f
- )
-
- )
-
- ::当前目录下没有dist目录
- if not exist "%currpath%%syncdir%" (
- echo 当前目录下没有需要同步的%syncdir%目录,请把需要同步的%syncdir%目录拷贝到当前目录下!
- ) else (
- echo !password!>%passfile%
- echo 数据同步开始,请稍后...
- !runcommand! && (
- echo 数据同步完成!
- ) || (
- echo !runcommand!
- echo 数据同步失败,请确认是否开启了VPN!
- )
- del %passfile%
- )
-
- endlocal
- pause
|