Skocz do zawartości

Plik *.BAT aktualizujący drugi program


Rekomendowane odpowiedzi

Hej,

Chciałbym napisać (z Waszą pomocą) program (a właściwie....coś :P) który po uruchomieniu poinformował by mnie o możliwości aktualizacji i spytał się czy tego chce.

Zależy mi na tym,by było to wykonane za pomocą komend CMD w pliku BAT bo oprócz tego to jedynie Python i troszeczkę Javy umiem.Nic poza tym.

Pobieranie pliku itd. mam zrobione,chodzi o skrypt sprawdzania aktualizacji.

 

Mogę liczyć na Waszą pomoc?:)

Odnośnik do komentarza
Pomoc jest darmowa, ale proszę rozważ przekazanie dotacji na utrzymanie serwisu: klik.

Założenie jest takie, że wywołanie polecenia z "pytaniem" ABOUT zwraca m.in. numerek wersji... I tak myślę, że możesz swój problem rozwiązać na dwa sposoby.

1. Umieścisz na serwerze plik tekstowy z numerkiem najaktualniejszej wersji, pobierzesz go odczytasz, porównasz...

2. Pobierzesz stronę na której jest umieszczony wpis dostępnych aktualizacji (numerek ostatniej wersji), użyjesz polecenia, które gmera po zawartościach pliku, jakoś odfiltrujesz to co zbędne (mam na myśli głównie tagi HTML), porównasz...

 

BTW

Rozumiem, że plik pobierasz z użyciem aplikacji wget?

https://www.fixitpc.pl/topic/5476-aktualizator/page__view__findpost__p__40842

Odnośnik do komentarza

Ale dlaczego "otwarcie" strony?

 

Pobierasz z serwera plik nazwa_pliku.txt (zapisując go w dowolnej lokalizacji np. tej na którą wskazuje zmienna środowiskowa TMP lub TEMP), a w którym jest tylko info o najnowszej wersji np. w formacie [0-9].[0-9].[0-9].[0-9] i zawartość pliku przypisujesz np jakieś zmiennej powiedzmy version

set /p version=< %TMP%\nazwa_pliku.txt
Albo wykorzystujesz polecenie np. findstr do przeszukania zawartości pobranego pliku pod kątem jakiegoś wzorca np.

findstr "[0-9].[0-9].[0-9].[0-9]$" %TMP%\nazwa_pliku.txt > version.txt

set /p version=< version.txt

(Wynik polecenia findstr przekierowałem najpierw do tymczasowego pliku version.txt, a potem wczytałem to do zmiennej).

http://ss64.com/nt/findstr.html

 

Wynik polecenia findstr pewno da się przekazać do pętli for /f. Podzielisz wtedy wyszukany ciąg na tzw. tokeny zakładając odpowiedni "podzielnik" (delimiter) - domyślnie jest to spacja....

http://ss64.com/nt/for.html

http://ss64.com/nt/for_cmd.html

 

Jakoś nie wyobrażam sobie, że będziesz trzymał wszystkie wersje aplikacji w jednym katalogu pod tą samą nazwą... :) A jak rozwiążesz "problem" po części zależy od tego jak sobie zorganizujesz stronę z aplikacją do pobrania z serwera.

Np. firefox nightly builds (strona główna i lokalizacja najświeższych build'ów)

http://nightly.mozilla.org/

http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/

Jeśli pobierzesz tą ostatnią stronę aplikacją wget to zapiszesz ją na dysku najprawdopodobniej jako index.html - używając polecenia findstr i odpowiednich wyrażeń regularnych wyszukasz interesujący Cię ciąg... Jak ten wyszukany ciąg dodatkowo przefiltrujesz (odsiewając tagi html) to inna sprawa. Ale pewne wskazówki masz nieco wyżej.

Odnośnik do komentarza
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...