download-updates.bash: Download updates for Microsoft Windows and Office

USAGE
   ./download-updates.bash UPDATE[,UPDATE...] LANGUAGE[,LANGUAGE...] \
   [OPTIONS]

UPDATE
    w62-x64       Windows Server 2012, 64-bit
    w63           Windows 8.1, 32-bit
    w63-x64       Windows 8.1 / Server 2012 R2, 64-bit
    w100          Windows 10, 32-bit
    w100-x64      Windows 10 / Server 2016/2019, 64-bit
    o2k13         Office 2013, 32-bit
    o2k13-x64     Office 2013, 32-bit and 64-bit
    o2k16         Office 2016, 32-bit
    o2k16-x64     Office 2016, 32-bit and 64-bit
    all           All Windows and Office updates, 32-bit and 64-bit
    all-x86       All Windows and Office updates, 32-bit
    all-x64       All Windows and Office updates, 64-bit
    all-win       All Windows updates, 32-bit and 64-bit
    all-win-x86   All Windows updates, 32-bit
    all-win-x64   All Windows updates, 64-bit
    all-ofc       All Office updates, 32-bit and 64-bit
    all-ofc-x86   All Office updates, 32-bit

    Notes: Multiple updates can be joined to a comma-separated list like
    "w63,w63-x64".

LANGUAGE
    deu    German
    enu    English
    ara    Arabic
    chs    Chinese (Simplified)
    cht    Chinese (Traditional)
    csy    Czech
    dan    Danish
    nld    Dutch
    fin    Finnish
    fra    French
    ell    Greek
    heb    Hebrew
    hun    Hungarian
    ita    Italian
    jpn    Japanese
    kor    Korean
    nor    Norwegian
    plk    Polish
    ptg    Portuguese
    ptb    Portuguese (Brazil)
    rus    Russian
    esn    Spanish
    sve    Swedish
    trk    Turkish

    Note: Multiple languages can be joined to a comma-separated list like
    "deu,enu".

OPTIONS
   -includesp
        Include Service Packs

   -includecpp
        Include Visual C++ runtime libraries

   -includedotnet
        Include .NET Frameworks: localized installation files and updates

   -includewddefs
        Windows Defender definition updates for the built-in Defender
        of Windows 8, 8.1 and 10

COMPATIBILITY
    All options should only be used with Windows updates, or with internal
    lists including Windows updates.

    The option -includesp is only applied to Windows 8.1 / Server 2012
    R2 in the master development version.

    The optional downloads cpp, dotnet and wddefs depend on the
    architecture of the operating system, which is derived from the
    selected Windows versions.

NOTES
    Windows Vista and higher are multilingual, but WSUS Offline Update
    still needs the correct language settings to download:
    - language packs for Internet Explorer 11 on Windows Server 2012,
      for languages other than English
    - language packs for .NET Frameworks

    In the Linux download scripts, all needed languages must be given on
    the command-line. For convenience, you can join several languages
    to a comma-separated list, to allow a faster evaluation of Windows
    Server 2012 and .NET Frameworks.

EXAMPLES
    To get updates for Windows Server 2012 with all optional downloads
    in German and English, you could use:

    ./download-updates.bash w62-x64 deu,enu -includesp -includecpp \
                                            -includedotnet -includewddefs

    This should get the same updates as the Windows script
    DownloadUpdates.cmd in its default configuration, using the default
    languages German and English.

    To get updates for Windows 8.1 with all optional downloads in French
    and Spanish, you could use:

    ./download-updates.bash w63 fra,esn -includesp -includecpp \
                                        -includedotnet -includewddefs

    To get the same results with the Windows script DownloadUpdates.cmd,
    you need to run four additional scripts first:

    RemoveGermanLanguageSupport.cmd
    RemoveEnglishLanguageSupport.cmd
    AddCustomLanguageSupport.cmd fra
    AddCustomLanguageSupport.cmd esn

    Once you removed the default languages in the Windows
    scripts, you cannot easily get them back: There are no scripts
    AddGermanLanguageSupport.cmd or AddEnglishLanguageSupport.cmd. The
    script AddCustomLanguageSupport.cmd won't help either, because German
    and English are not considered "custom" languages. The only way to
    get the defaults back, is to reinstall the wsusoffline archive. With
    the Linux download scripts, you can just specify the default languages
    deu,enu on the command-line again.

    Since version 1.1 of the Linux download scripts, updates can also be
    joined to a comma-separated list. To get all updates for Windows 8.1,
    both 32-bit and 64-bit, you can use:

    ./download-updates.bash w63,w63-x64 deu,enu -includesp -includecpp \
                                         -includedotnet -includewddefs

    Single updates can also be combined with internal lists. To get
    updates for Windows 8.1 and all Office versions, you could use:

    ./download-updates.bash w63,w63-x64,all-ofc deu,enu -includesp \
                         -includecpp -includedotnet -includewddefs

    See the script get-all-updates.bash for more examples. This script
    may also serve as a template for customization.
