The silent installer skips the desktop shortcut option, so the script creates the shortcut itself. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
55 lines
1.6 KiB
Batchfile
55 lines
1.6 KiB
Batchfile
@echo off
|
|
setlocal
|
|
title Install ws2tcp-local
|
|
|
|
fltmc >nul 2>&1
|
|
if errorlevel 1 (
|
|
echo Please right-click this file and choose "Run as administrator".
|
|
pause
|
|
exit /b 1
|
|
)
|
|
|
|
set "MANIFEST=https://wangguofang.net/ws2tcp-local/releases/latest.json"
|
|
set "INSTALLER=%TEMP%\ws2tcp-local-setup.exe"
|
|
|
|
echo Looking up the latest ws2tcp-local release...
|
|
set "URL="
|
|
for /f "usebackq delims=" %%U in (`powershell -NoProfile -ExecutionPolicy Bypass -Command "(Invoke-RestMethod -UseBasicParsing '%MANIFEST%').windows_url"`) do set "URL=%%U"
|
|
if not defined URL (
|
|
echo Could not read the download URL from %MANIFEST%.
|
|
pause
|
|
exit /b 1
|
|
)
|
|
|
|
echo Downloading %URL%...
|
|
curl.exe -fL --retry 3 -o "%INSTALLER%" "%URL%"
|
|
if errorlevel 1 (
|
|
echo Download failed.
|
|
pause
|
|
exit /b 1
|
|
)
|
|
|
|
echo Installing ws2tcp-local...
|
|
"%INSTALLER%" /S
|
|
set "RC=%ERRORLEVEL%"
|
|
del "%INSTALLER%" >nul 2>&1
|
|
|
|
if "%RC%"=="0" (
|
|
call :desktop_shortcut
|
|
echo Done.
|
|
) else (
|
|
echo The installer exited with code %RC%.
|
|
)
|
|
pause
|
|
exit /b %RC%
|
|
|
|
:desktop_shortcut
|
|
rem The silent installer skips its "Create desktop shortcut" option.
|
|
set "EXE=%ProgramFiles%\ws2tcp-local\bin\ws2tcp-local-gui.exe"
|
|
if not exist "%EXE%" (
|
|
echo Could not find %EXE%, skipping the desktop shortcut.
|
|
exit /b 0
|
|
)
|
|
powershell -NoProfile -ExecutionPolicy Bypass -Command "$s=(New-Object -ComObject WScript.Shell).CreateShortcut([Environment]::GetFolderPath('CommonDesktopDirectory')+'\ws2tcp-local.lnk'); $s.TargetPath=$env:EXE; $s.WorkingDirectory=Split-Path $env:EXE; $s.Save()"
|
|
exit /b 0
|