instalation script
This commit is contained in:
parent
1045f54128
commit
a0c9e8a4f3
2 changed files with 104 additions and 0 deletions
99
docs/content/install.bat
Normal file
99
docs/content/install.bat
Normal file
|
@ -0,0 +1,99 @@
|
||||||
|
@echo off
|
||||||
|
setlocal enabledelayedexpansion
|
||||||
|
|
||||||
|
|
||||||
|
REM Check for admin rights
|
||||||
|
net session >nul 2>&1
|
||||||
|
if %errorLevel% equ 0 (
|
||||||
|
echo Administrative privileges confirmed.
|
||||||
|
echo --------------------------------------------------------
|
||||||
|
) else (
|
||||||
|
echo Please run this script as an administrator.
|
||||||
|
pause
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
REM Get windows versions
|
||||||
|
set "ps_script=$originalProtocol = [Net.ServicePointManager]::SecurityProtocol;$env:PSL1 = [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12;$response = Invoke-WebRequest -Uri 'https://api.github.com/repos/rclone/rclone/releases/latest' -UseBasicParsing -Method GET;$responseJson = $response | ConvertFrom-Json;foreach ($asset in $responseJson.assets) {if ($asset.name -match 'windows') {$asset.name | Out-File -FilePath 'rclone_win_versions.txt' -Append -Encoding ascii;$asset.browser_download_url | Out-File -FilePath 'rclone_win_download_links.txt' -Append -Encoding ascii;}};$env:PSL1 = [System.Net.ServicePointManager]::SecurityProtocol = $originalProtocol"
|
||||||
|
powershell -command "& {%ps_script%}"
|
||||||
|
set "versions=rclone_win_versions.txt"
|
||||||
|
set "download_links=rclone_win_download_links.txt"
|
||||||
|
set index1=0
|
||||||
|
set index2=0
|
||||||
|
for /f "delims=" %%A in (%versions%) do (
|
||||||
|
set /a index1+=1
|
||||||
|
echo !index1!. %%A
|
||||||
|
set wins[!index1!]=%%A
|
||||||
|
)
|
||||||
|
for /f "delims=" %%B in (%download_links%) do (
|
||||||
|
set /a index2+=1
|
||||||
|
set downloads[!index2!]=%%B
|
||||||
|
)
|
||||||
|
del rclone_win_versions.txt
|
||||||
|
del rclone_win_download_links.txt
|
||||||
|
|
||||||
|
|
||||||
|
REM Get user input on windows version
|
||||||
|
:GET_INPUT
|
||||||
|
set /p "userInput=Select the appropriate option from above (between 1 and %index1% inclusive): "
|
||||||
|
:: Check if the input is a valid integer
|
||||||
|
for /f "tokens=1 delims=0123456789" %%a in ("%userInput%") do (
|
||||||
|
echo Invalid input. Please try again.
|
||||||
|
goto GET_INPUT
|
||||||
|
)
|
||||||
|
:: Check if the integer is within the specified range
|
||||||
|
if %userInput% lss 1 (
|
||||||
|
echo Integer must be greater than or equal to 1.
|
||||||
|
goto GET_INPUT
|
||||||
|
)
|
||||||
|
if %userInput% gtr %index1% (
|
||||||
|
echo Integer must be less than or equal to %index1%.
|
||||||
|
goto GET_INPUT
|
||||||
|
)
|
||||||
|
echo Selected !wins[%userInput%]!
|
||||||
|
echo --------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
REM Download selected version
|
||||||
|
echo Downloading !downloads[%userInput%]!
|
||||||
|
set "download_script=$originalProtocol = [Net.ServicePointManager]::SecurityProtocol;$env:PSL1 = [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12;Invoke-WebRequest -Uri $link -UseBasicParsing -OutFile $name;$env:PSL1 = [System.Net.ServicePointManager]::SecurityProtocol = $originalProtocol"
|
||||||
|
powershell -Command "& {param($link, $name); %download_script%}" "!downloads[%userInput%]!" "!wins[%userInput%]!"
|
||||||
|
echo --------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
REM Unzip downloaded zip
|
||||||
|
echo Unzipping !wins[%userInput%]!
|
||||||
|
powershell -Command "& {param($zip); Expand-Archive -Path $zip -Force}" "!wins[%userInput%]!"
|
||||||
|
echo --------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
REM Create new directory for rclone
|
||||||
|
echo Creating base directory for rclone
|
||||||
|
set rclonePath=C:\rclone
|
||||||
|
mkdir %rclonePath%
|
||||||
|
echo --------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
REM Copy rclone to created rclone path
|
||||||
|
echo Copy !wins[%userInput%]:~0,-4! executable to %rclonePath%
|
||||||
|
set unzip_path=.\!wins[%userInput%]:~0,-4!\!wins[%userInput%]:~0,-4!\rclone.exe
|
||||||
|
copy %unzip_path% %rclonePath%
|
||||||
|
echo --------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
REM Add rclone directory to PATH
|
||||||
|
echo Adding %rclonePath% to PATH
|
||||||
|
if not defined PATH (
|
||||||
|
setx PATH "%rclonePath%"
|
||||||
|
) else (
|
||||||
|
setx PATH "%PATH%;%rclonePath%"
|
||||||
|
)
|
||||||
|
echo --------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
echo Done
|
||||||
|
echo --------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
endlocal
|
|
@ -148,6 +148,11 @@ links. If not sure, use the first link.
|
||||||
Open this file in the Explorer and extract `rclone.exe`. Rclone is a
|
Open this file in the Explorer and extract `rclone.exe`. Rclone is a
|
||||||
portable executable so you can place it wherever is convenient.
|
portable executable so you can place it wherever is convenient.
|
||||||
|
|
||||||
|
To download `rclone.exe` and immediately start using it in the temrinal
|
||||||
|
from anywhere, you can also use this download script
|
||||||
|
[install.bat](rclone\docs\content\install.bat). Just download the script
|
||||||
|
anywhere and run it in CMD as administrator.
|
||||||
|
|
||||||
Open a CMD window (or powershell) and run the binary. Note that rclone
|
Open a CMD window (or powershell) and run the binary. Note that rclone
|
||||||
does not launch a GUI by default, it runs in the CMD Window.
|
does not launch a GUI by default, it runs in the CMD Window.
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue