String command = "cmd /c python <command to execute or script to run>";
Process p = Runtime.getRuntime().exec(command);
p.waitFor();
BufferedReader bri = new BufferedReader(new InputStreamReader(p.getInputStream()));
BufferedReader bre = new BufferedReader(new InputStreamReader(p.getErrorStream()));
String line;
while ((line = bri.readLine()) != null) {
System.out.println(line);
}
bri.close();
while ((line = bre.readLine()) != null) {
System.out.println(line);
}
bre.close();
p.waitFor();
System.out.println("Done.");
p.destroy();
Вы будете пинать себя:
while( ( $pass < 3 ) && ( $result = 0 ) ) {
Должен использовать двойной эквивалент - это сравнение, а не назначение:
while( ( $pass < 3 ) && ( $result == 0 ) ) {
Вам не нужна вторая переменная $result
. Вместо этого используйте break .
while($pass < 3) {
//Count loops
$pass++;
//Execute ping
$output=shell_exec('ping -n 1 '.$ip);
//Display ping results for testing purposes
echo "<pre>$output</pre>";
//Check for "TTL" presence
if(strpos($output, 'TTL') !== false)
{
//Display for testing
echo "Alive";
break; //exiting while loop
}
//Display negative result for testing
else
{
echo "Dead";
}
}
Вы даже можете записать меньше кода с помощью
while($pass++ < 3) {
Ваше второе условие написано неправильно. Измените его на $result === 0
Использовать равный оператор не назначать.
while( ( $pass < 3 ) && ( $result == 0 ) )
Это должно работать.