Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Skrypty *.bat
Forum PHP.pl > Forum > PHP
blusss1
Witam,
posiadam skrypt *.php który chciałbym automatycznie odpalać co 1h.
Windows oferuje mi tą możliwość za pomocą "Harmonogramu zadań", jednak program ten ma problem z odpaleniem mojego skryptu PHP który wywoływany jest za każdym razem gdy odpalę przeglądarkę www. Skrypt działa gdy odpalę go ręcznie (zadaniem jego jest odczyt danych z pliku txt i przekazanie wartości do Bazy Danych)
Wyczytałem na necie, że mogę napisać inny skrypt (wystarczy zapisać plik z rozszerzeniem *.bat) który przez harmonogram zadań odpali mój mający za zadanie przekazać informacje do bazy...
mowa o skryptach bat
Jeśli odpowiednio skonfiguruje plik z rozszerzeniem *.bat to mogę go wywołać do odpalenia mojego skryptu *.php i wtedy mógłbym w harmonogramie zadań określić ścieżkę do pliku z rozszerzeniem *.bat jednak nie bawiłem się nigdy tego rodzaju skryptami, może ktoś z was mi pomoże??
b4x
Ja bym to tak mniej więcej zrobił (komenda dla WINDOWSA XP) - wystarczy wklepać raz tongue.gif

Kod
schtasks /create /tn "Mój CRON" /tr "C:\Program Files\Mozilla Firefox\firefox.exe http://www.costam.pl/skrypt.php" /sc hourly
blusss1
chwila dla wyjaśnienia:
W jaki sposób i gdzie mam wpisać tą ścieżkę??
schtasks /create /tn "Mój CRON" /tr "C:\Program Files\Mozilla Firefox\firefox.exe http://www.costam.pl/skrypt.php" /sc hourly


co mam wpisać w pole -> "Mój CRON"questionmark.gif czy to nie ma być nazwa np: cron*.bat??
rozumiem, że to jest ścieżka dostępu do zainstalowanego firefoxa -> "C:\Program Files\Mozilla Firefox\firefox.exe
a to ścieżka lokalizacji skryptu PHP -> http://www.costam.pl/skrypt.php"

seba22
Wersja zaproponowana przez kolegę wyżej ma sens tylko wtedy kiedy serwer jest na zdalnej maszynie.
----
Mój CRON to nazwa zadania w harmonogramie (dla twojej informacji)

A smoka Firefoxa, zamień na milutką malutką windowsową kompilację wgeta
http://pages.interlog.com/~tcharron/wgetwin.html

---


Jeżeli serwer masz u siebie, to nie potrzebujesz w ogóle wywoływać go zdalnie przy użyciu przeglądarki, wystarczy że odwołasz się do interpretera.

c:\php\interpreter.exe c:\strona\plikcron.php

blusss1
Panowie dziękuje za pomoc ale poradziłem sobie już guitar.gif wszystko śmiga z zapisem automatycznym tak jak trzeba (co 1h robi mi zrzut do bazy)
Problem był taki że w harmonogramie źle wpisywałem wywołanie do skryptu:
php - f "skrypt.php"
rozwiązanie tego było wręcz "banalne" i aż wstyd mi się do tego przyznać dlatego należy się trochę wyjaśnienia.
Oczywiście skrypt wykona się jeśli odpalimy go z wiersza poleceń lub przez przeglądarkę, jednak gdy chcemy odpalić go przez harmonogram zadań należy wpisać go w takiej postaci:
C:\php\php.exe - f "ścieżka_do_skryptu\skrypt.php" Dlaczego??
Otóż trzeba podać ścieżkę dostępu do pliku php zainstalowanego na naszym komputerze, następnie przez wywołanie opcji -f podajemy ścieżkę do skryptu i FINITO smile.gif
a tyle się nad tym głowiłem sciana.gif
Fifi209
Wystarczy dodać ścieżkę w zmiennych środowiskowych, konkretniej dopisać się na końcu Path i możemy php używać bez podawania ścieżki ;]

Konkretniej: mój komputer -> właściwości -> zaawansowane -> zmienne środowiskowe
blusss1
Zmienne środowiskowe miałem już dodane od samego początku instalacji PHP z Apache winksmiley.jpg i niestety to działa tylko wtedy jak odpalamy skrypt przez CMD ... ale jeżeli spróbujesz walczyć z harmonogramem zadań, to sam się przekonasz że nie jest on przystosowany do wykrywania automatycznych opcji php takich jak -f ale problem już rozwiązany, można zamknąć temat smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.