peter2012 Opublikowano 27 Października 2011 Zgłoś Udostępnij Opublikowano 27 Października 2011 Hej, Chciałbym napisać (z Waszą pomocą) program (a właściwie....coś ) 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
3oo Opublikowano 27 Października 2011 Zgłoś Udostępnij Opublikowano 27 Października 2011 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
peter2012 Opublikowano 27 Października 2011 Autor Zgłoś Udostępnij Opublikowano 27 Października 2011 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... Odnośnik do komentarza
3oo Opublikowano 27 Października 2011 Zgłoś Udostępnij Opublikowano 27 Października 2011 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
peter2012 Opublikowano 28 Października 2011 Autor Zgłoś Udostępnij Opublikowano 28 Października 2011 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ąć. Odnośnik do komentarza
Rekomendowane odpowiedzi