automatizované stahování souborů

oblíbil jsem si spoustu těch zajímavých udělátek ze stránky nirsoft.net a nosím je na flešce. jenže jak je udržovat aktuální? jednou za čas se koukat na web, na to jsem moc línej…

první co se mi vybavilo bylo šikovné udělátko wget, to mi postahuje co budu chtít, oka, jenže přece nenapíšu lamáckej BAŤák s padesáti řádkama.

po nějakým tom googlení a zkoušení vzniklo toto:

@echo off
:: nastaveni promennych
set output=..
set tempdir=~tmp
set url=http://www.nirsoft.net/utils
set wget=wgetwget.exe
set zip=7zip7z.exe

:: vytvorime docasny adresar
mkdir .%tempdir%

:: projede nirsoft.csv (slozka;zip;czech)
:: syntaxe csv je: NAZEVPROGRAMU;NAZEVARCHIVU.zip;nazevarchivu_JAZYK.zip (bere se to, co je velkymi pismeny)
for /f "tokens=1,2,3 delims=;" %%a in (nirsoft.csv) do (

:: stazeni (zkusime proste vsechny verze, tim je do budoucna zajisteno,
:: ze kdyby se napr. objevila cestina, tak se nam sama stahne)
%wget% --directory-prefix=%tempdir% %url%/%%b.zip
%wget% --directory-prefix=%tempdir% %url%/%%b-x64.zip
%wget% --directory-prefix=%tempdir% %url%/trans/%%b_%%c.zip

:: rozbaleni (64bitovou verzi prejmenujeme na *-x64*)
%zip% e -tzip %tempdir%%%b.zip -o%output%%%a -aoa -y
%zip% e -tzip %tempdir%%%b-x64.zip -o%tempdir%%%b *.exe -r -y && copy %tempdir%%%a%%b.exe %output%%%a%%b-x64.exe
%zip% e -tzip %tempdir%%%b_%%c.zip -o%output%%%a -aoa -y
)

:: smazeme po sobe docasnou slozku
rmdir /S /Q .%tempdir%

vypadá to divoce, zajímavě, šíleně, ale celkem to funguje 🙂 ještě je k tomu zapotřebí kouzelný, konfigurační (excelem snadno editovatelný) soubor nirsoft.csv.

WirelessKeyView;wirelesskeyview;czech
BatteryInfoView;batteryinfoview;czech
BluescreenView;bluescreenview;czech
DiskCounterView;diskcountersview;czech
DiskSmartView;disksmartview;czech
DriverView;driverview;czech
FileTypesMan;filetypesman;czech
MACAddressView;macaddressview;czech
Produkey;produkey;czech1
RegFromApp;regfromapp;czech
RegScanner;regscanner;czech
RemoteDesktopPassView;rdpv;czech
ShellExView;shexview;czech
ShellMenuNew;shellmenunew;czech
ShellMenuView;shmnview;czech
SmartSniff;smsniff;czech
SpecialFoldersView;specialfoldersview;czech
USBDeview;usbdeview;czech1
WhatInStartup;whatinstartup;czech
WirelessKeyView;wirelesskeyview;czech
WirelessNetView;wirelessnetview;czech

skript tedy pomocí wgetu potahá do dočasné složky 32 i 64bitovou verzi, a český překlad (pokud něco z toho na serveru není, tak tam asi proběhne nějaká chyba, ale wgetu to nevadí, a až se v budoucnu objeví třeba ta lokalizace, tak ji aspoň sám dotáhne.

pak přijde na řadu 7zip, který všechny zip soubory rozbalí do příslušných složek. 64bitová verze programu se jmenuje stejně jako 32, takže ji rozbalíme ještě do podsložky, a při kopírování na cílové místo připlácneme k názvu -x64.

no a hlavní fígl je to použití cyklu FOR, nikdy by mě nenapadlo, že batch něco takovéhleho zvládne 🙂

a teď jen voilá, kliknu na jeden BAT, a po chvilce chroupání je vše aktuální 🙂

pro příště mám v plánu tahat dávkou POI ze serveru poi.cz, ale to bude ještě krapet složitější, protože nepřihlášený uživatel musí opisovat captchu, a u přihlášeného budu muset wgetem nejdřív vytvořit potřebné cookies…

mikrom

Roman Mikulka aka mikrom. Ajťák, opravář, programátor samouk, elektrotechnik, koloběžkář a geocacher. Více na samostatné stránce O mně.

Mohlo by se vám líbit...