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…
Sosni si tohle: WSCC to je to samé co ten tvůj skript akorát se to aktualizuje samo a v GUI. http://www.kls-soft.com/wscc/