Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Jak uruchomić plik .bat z poziomu php?
Forum PHP.pl > Forum > Przedszkole
-Dario-
Witam

Problem jest taki, że mam plik C:\cw-03-02\jquery\plik_bat.bat w którego treści jest tylko: "shortlog -s -n" jest to polecenie programu GIT i ładnie działa on w
konsoli wyświetlając to co ma wyświetlić, natomiast uruchamiając go z poziomu php za pomocą kodu:
  1. <?php
  2. exec('C:\cw-03-02\jquery\plik_bat.bat',$wynik2);
  3. foreach($wynik2 as $wiersz2)
  4. {
  5. echo "$wiersz2\n";
  6. }
  7. ?>


Dostaję w odpowiedzi tylko: "C:\wamp\www\strona1>git shortlog -s -n" czyli samą treść polecenia. Wie ktoś co jest źle? Czemu nie wyświetla całej listy?

Z góry dzięki za odpowiedź.
Daimos
shell_exec może to pomoże?
Gość
Dzięki Daimos, ale shell_exec chyba też nie pomaga, bo wpisując taki oto kod:
  1. <?php
  2. $output=shell_exec('C:\cw-03-02\jquery\plik_bat.bat');
  3. echo $output;
  4. ?>

Dostaję dokładnie to samo co poprzednio czyli: C:\wamp\www\Test_repozytorium>git shortlog -s -n.
nospor
Przedewszystkim podajesz zly kod.
Nie: 'C:\cw-03-02\jquery\plik_bat.bat'
a: 'C:\\cw-03-02\\jquery\\plik_bat.bat'

\ to znak specjalny
-Dario-
Dzięki nospor, ale z podwójnymi sleszami w ścieżce pliku tzn. "\\" dostaję dokładnie to samo. Zarówno przy 'C:\cw-03-02\jquery\plik_bat.bat' jak i
'C:\\cw-03-02\\jquery\\plik_bat.bat' zachowuje się tak samo.
-Dario-
Dla uściślenia dodam jeszcze, że korzystam z WampServer i php5.4.16, a plik php odpalam w przeglądarce Internet Explorer
o adresie http://localhost/Test_repozytorium/ w którym znajduje się mój plik php index.php. Może tu jest gdzieś błąd?
chemiqs
  1.  
  2.  
  3. // ======METODA 1 ========================
  4. $output=shell_exec("C:\zenon\plik.bat");
  5. echo "<pre>" . $output . "<pre>";
  6.  
  7.  
  8.  
  9.  
  10.  
  11. //======METODA2======================
  12. exec("C:\zenon\plik.bat",$wynik2);
  13. foreach($wynik2 as $wiersz2)
  14. {
  15. echo $wiersz2 . "<br>";
  16. }
  17.  
  18.  
  19.  
  20.  
  21. //===== METODA3 =================
  22. @$wp = fopen("$DOCUMENT_ROOT/../../../zenon/plik.bat", 'rb');
  23. if(!$wp){
  24. echo ("<p><strong>plik jest pusty</strong>");
  25. }
  26. flock($wp, LOCK_SH);
  27. while(!feof($wp)){
  28. $plik=fgets($wp,999); //funkcja odczytuje wiersz aż napotka znak \n
  29. echo ($plik . "<br>");
  30. }
  31. flock($wp, LOCK_UN);
  32. fclose($wp);
  33.  


mi chodzi
-Dario-
Dzięki chemiqs, ale u mnie wciąż nie działa, żadną metodą. Pierwsze dwie próbowałem i dostaje wciąż to samo jedynie
"C:\wamp\www\Test_repozytorium>git shortlog -s -n" natomiast trzeciej nie bardzo rozumiem więc skopiowałem prawie na żywca, ale dostaje tylko
"git shortlog -s -n". Przepisałem dokładnie Twój kod, zmieniłem jedynie ścieżkę dostępu do pliku. Skoro u Ciebie działa co może być źle u mnie?
-Dario-
Dzięki chemiqs, ale u mnie wciąż nie działa, żadną metodą. Pierwsze dwie próbowałem i dostaje wciąż to samo jedynie
"C:\wamp\www\Test_repozytorium>git shortlog -s -n" natomiast trzeciej nie bardzo rozumiem więc skopiowałem prawie na żywca, ale dostaje tylko
"git shortlog -s -n". Przepisałem dokładnie Twój kod, zmieniłem jedynie ścieżkę dostępu do pliku. Skoro u Ciebie działa co może być źle u mnie?
chemiqs
a cokolwiek localhost ci wyświetla??
zwykłą komendę:

  1. <?php
  2. echo "costam";
  3. ?>
-Dario-
Sory, że dopiero teraz piszę byłem trochę zajęty.
Ta cokolwiek localhost mi wyświetla.
Po wpisaniu do skryptu tego co napisałeś:
  1. <?php
  2. echo "costam"
  3. ?>


Wyświetla się napis: "costam" w przeglądarce na localhoscie. W takim razie chyba PHP działa.
Co zatem może być nie tak?
aniolekx
sprawdź: http://uk1.php.net/popen
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.