Automating installs & downloads

Automating installs & downloads

Latest Git:

wget --no-check-certificate -O - 2>nul ^
| sed -n "0,/.*\(\/\/\/files\/Git-.*\.exe\).*/s//http:\1/p" ^
| wget -i - -O Git-Latest.exe

or in one line:

wget --no-check-certificate  -O - 2>nul | sed -n "0,/.*\(\/\/\/files\/Git-.*\.exe\).*/s//http:\1/p" | wget -i - -O Git-latest.exe

Get latest GoW (GNU on Windows):

wget --no-check-certificate  -O - 2>nul ^
| sed -n "0,/.*\(\/downloads\/bmatzelle\/gow\/Gow-.*\.exe\)"".*/s//https:\/\/github\.com\1/p" ^
| wget --no-check-certificate -i - -O Gow-Latest.exe

And install silently:

start /wait Gow-Latest.exe /S /D="%ProgramFiles%\Tools" && echo Gnu On Windows (GOW) Installed

It adds itself to a path variable, and removes from path on uninstall.

x Download any GnuWin32 utility (you have to have wget), and install it

wget -nc
for /f "tokens=*" %f in ('dir sed-*-setup.exe /B') do @(start /wait %f /silent /dir="%ProgramFiles%\Tools" /noicons /components="bin" /tasks="" && echo Sed Installed)

Note about escaping in sed

You simply must always, ALWAYS use \x22 instead of double quote in SED! For the backslash \, you must always use \x5c. So in Sed in Windows (both GnuWin and MSYS) you should use \x5c\x5c, because two backslashes \\ is not relieble - doesn’t have the same effect in both variants.

Find out where Git is installed:

reg query HKEY_CURRENT_USER\Software\Git-Cheetah -v PathToMsys ^| sed -n "s/.*REG_SZ\s*\(.*\)/\1/p"

You can use pipe inside grouping in command line (see above example), but then don’t forget to escape it with ^

How to convert from relative to absolute path, in command line:

pushd "%_GIT%"
set _GIT="%CD%"
date 01. Jan 0001 | modified 28. May 2021
filename: Automating installs & downloads