skrypt pingujący strone

0

witam pisze 2 raz gdyż ostatnio nie napisałem za bardzo o co mi chodzi i temat został słusznie przeniesiony do kosza.

chce zrobić skrypt w bat który pinguje dowolną strone przez 24h co 1 godzine na razie zrobiłem mini skrytp który pinguje mi strone i zapisuje wynik do pliku ale nie wiem jak to zapętlić aby za następną godzine znów sprawdził ping.
mój kod:

Skrypt loguje date i czas kazdej zmiany stanu

 start
time /t  >> x.txt
ping onet.pl>>x.txt
goto start
 

myśle iż trzeba to zapętlić for-em ale jestem noobem jeżeli chodzi o programowanie i nie wiem jak się za to zabrać.
bardzo bym prosił o jakiekolwiek podpowiedzi.
z gówy Wam dziękuje

0

Drugi wynik w google dla "windows cmd wait" zawiera to czego potrzebujesz.

http://www.robvanderwoude.com/wait.php

0

dalej mam problem gdyż użyłem sleep aby pingował co 60 sekund a i tak zapisują się wyniki dwóch pingów w tym samym czasie ...

mój kod :

start
time /t >> x.txt
ping onet.pl  >> x.txt

sleep 60 >> x.txt
time /t >> x.txt
ping onet.pl  >> x.txt

ponadto pojawia mi się jakiś błąd "system nie może znaleŹć etykiety pliku wsadowego - start "

0
  1. A zapoznałeś się z budową pliku bat? Bo etykiety robi się inaczej
  2. Polecenie ping pod windowsem nie wykonuje defaultowo jednego a cztery pingi
1

Pytającemu polecam myśleć co się robi i ogarnąc podstawy. Ja jako sleep.exe użyłem mały konsolowy program napisany pod Delphi 7 z użyciem modułów do pobrania z http://kolmck.net/sys/SysDcu7.zip dzięki czemu po zUPXowaniu exek jest na tyle mały, że jest to do przyjęcia. A sam plik wsadowy powinien raczej wyglądać mniej więcej tak jak poniżej. Działanie programu oczywiście przerwiesz naciskając komibnację Ctrl+C.

Program w Delphi:

program sleep;

{$APPTYPE CONSOLE}

uses
  Windows;

var
  V, ErrCode : integer;
begin
  Val(ParamStr(1), V, ErrCode);
  if (V > 0) and (ErrCode = 0) then
  begin
    Windows.Sleep(V * 1000);
  end;
end.

Plik wsadowy:

@echo off
set logfile=ping.log
set host2ping=onet.pl

:start
time /t >> %logfile%
ping -n 1 %host2ping% >> %logfile%
sleep 60
goto start
0

no za bardzo się nie za poznałęm z tą budową
a wiesz może gdzie przynajmniej mam wstawić "sleep" ?
bo już nie mam pojęcia jak to zrobić .. :/

0

Przypominam, że Windows ma też Harmonogram zadań i ustawienie w nim wykonywanie co minutę poleconego zadania to chwila.

0

Przecież dostałeś odpowiedź. A chyba logiczne, że jeżeli program ma odczekać 60 sekund po wykonaniu czynności to wielka zagadka gdzie go wstawić ;/

0

Plik wsadowy:

@echo off
set logfile=ping.log
set host2ping=onet.pl

:start
time /t >> %logfile%
ping -n 1 %host2ping% >> %logfile%
sleep 60
goto start

olesio kod nie działą występuje taki błąd
http://imageshack.us/photo/my-images/6/lipaw.jpg/

Rev
ale ja muszę to napisać w skrypcie.

0

Ręce opadają. Chłopie ogarnij się! Przecież wklejasz jakiś kod gdzie używasz polecenia sleep, to założyłem, że albo sam napisaleś albo znalazłeś sobie program, który odczeka ustaloną ilośc sekund. Zresztą podałem gotowy i przetestowany skrypt, a sam kod programu sleep podałem oraz w czym go najłatwiej napisać. Teraz dołączam go do tego posta wraz z plikiem *.bat. Na przyszłość radzę myśleć co się robi, a komunikaty o błędach też nie są po to aby je bezmyślnie wklejać jako zrzut ekranu, tylko się stosować. Poza tym na tej stronie do którego dostałeś link wcześniej, jest pokazany sposób na sleepa z użyciem pinga, którego wynik przecież nie musisz zapisywać już do pliku, bo on tylko robi jako sposób na "odczekanie".

0

podałeś mi znów plik bat ale i tak nie działa ...
bez sensu...

0

Drogo kolego: jak to mówią w pewnych gronach: ogarnij się. Jeśli otrzymujesz sugestię użycia pewnego polecenia, to z łaski swojej sprawdź, czy ono działa samodzielnie w konsoli: wtedy będziesz mieć pewność, że będzie działać też i w skrypcie.
Jeśli używasz sleep'a, to sprawdź czy masz takie polecenie dostępne w konsoli: jeśli nie: to je w jakiś sposób wytrzaśnij bądź użyj innego: mój pierwszy post powinien dla średnio rozgarniętej osoby zakończyć temat. X metod czekania Y sekund. głupie pingowanie localhost'a pozwala nie do końca precyzyjnie, ale na pewno konkretnie rozwiązać problem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1