Skocz do zawartości
peter2012

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?:)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
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

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi

Tak,pobieram przez wget.

Właśnie o takie coś mi chodzi.Tylko jakie jest polecenie na otwarcie strony i sprawdzenie numerku?

Bo w Pythonie umiem takie coś ale w CMD już nie...

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi

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.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi

Dzięki 3oo za pomoc.Będę próbował.A stronę z wersją to ja sobie zorganizuje bez problemów.

 

Dzięki.Temat można zamknąć.:)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
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ę...