Downloading Latest D Language DMD compiler via Windows 10 batch script file.

Eugene Wissner belka at caraus.de
Tue Dec 17 18:08:05 UTC 2019


On Tuesday, 17 December 2019 at 16:55:56 UTC, BoQsc wrote:
> Initialy I though about a way to download DMD compiler on a 
> single line of command prompt.
> However it turned out that dlang website makes downloading the 
> latest version a complex thing.
>
> Here, I'm sharing a batch script that might be interesting if 
> you are wondering how to download and launch latest d language 
> compiler setup in a single click.
>
> Usage: Copy and paste the script below into a text file
> and rename the text file to a file name that ends in .cmd or 
> .bat extension
>
> Examples:
> download-dmd.cmd
> download-dmd.bat
>
> .cmd and .bat extensions are the same thing, no worries about 
> that.
>
>
>>@ECHO OFF
>>
>>:Download-version-number-file-from-dlang
>>:: Downloads LATEST file from dlang, via bitsadmin - official 
>>command line download utility included since Windows 7
>>:: LATEST file is a plain text file that contains a single line 
>>of text: a number of latest version of DMD. bitsadmin /Transfer 
>>"%random%" "http://downloads.dlang.org/releases/LATEST" 
>>"%cd%/LATEST"
>>IF NOT ERRORLEVEL 0 (
>>	TITLE BITSADMIN have an error, retrying to download LATEST file
>>	TIMEOUT "2"
>>	CLS
>>	GOTO :Download-version-number-file-from-dlang )
>>:: A hacky Batch language way to store File content inside a 
>>variable.
>>SET /P "version=" < "LATEST"
>>
>>:: Simply delete LATEST file, we don't need it anymore LATEST 
>>file is stored inside variable named "version"
>>DEL "LATEST"
>>CLS
>>
>>
>>:: Get YEARS from from Windows 10 Date Environment Variable
>>:: Windows 7 might require adjustments to gather the correct 
>>years, as the format might be different
>>SET "yearsRightNow=%date:~0,4%"
>>
>>:: Download Latest version of dmd compiler for Windows, via 
>>bitsadmin
>>bitsadmin /Transfer "%random%" 
>>"http://downloads.dlang.org/releases/%yearsRightNow%/dmd-%version%.exe" "%cd%/dmd-%version%.exe"
>>
>>:: Launch the downloaded compiler's setup
>>start "" "dmd-%version%.exe"

This is the same thing GNOME does. And it allows to automate 
compiler updates and allows to figure out what is the latest 
version (useful for tools). "dmd-latest.deb" or similar is more 
useful for human beings but is less "generic" approach since a 
tool wouldn't know what version it is. And imho there is the 
homepage for humans which always displays the latest version.


More information about the Digitalmars-d mailing list