PHP-скрипт Start-Job не работает в Powershell?

У меня есть PHP-скрипт, который выглядит так:

if(file_exists("temp.txt")){
$myfile = fopen("temp.txt", "a") or die("Unable to open file!");
}
else{
$myfile = fopen("temp.txt", "w") or die("Unable to open file!");
}
date_default_timezone_set("America/New_York");
$date = date('m/d/Y h:i:s a', time());
$text = $date . PHP_EOL;
fwrite($myfile, $text);
fclose($myfile);

Когда я запускаю приведенный выше скрипт в Powershell, используя

php myscript.php

Текстовый файл создан и записан в.

Если я попытаюсь запустить тот же файл с

Start-Job ScriptBlock {php myscript.php}

Я получу ответ как

введите описание изображения здесь

Но мой текстовый файл никогда не записывается в. Это похоже на Start-Job никогда не запускает мой PHP-скрипт.

Как я могу получить Start-Job запустить PHP скрипты?

0

Решение

Хорошо, я напишу ответ на все это:

Из теста (с вашим сценарием в качестве источника) я добавил эхо, чтобы получить что-то в Receive-Job в powershell.

Было очевидно, что сценарий выполняется должным образом, но не в ожидаемом каталоге.

Поэтому я добавил getcwd() в эхо, и это показывает мне, что рабочая папка для работы (или блок скриптов) — это каталог моих документов), и я нашел там файл с моим домом \ документами.

Вот последний сценарий, с которым я закончил:

echo "I'm running in ".getcwd()." !\n";

if(file_exists("temp.txt")){
$myfile = fopen("temp.txt", "a") or die("Unable to open file!");
}
else{
$myfile = fopen("temp.txt", "w") or die("Unable to open file!");
}
echo "Ok, file was opened: \n".print_r(fstat($myfile),1)."\n";
date_default_timezone_set("America/New_York");
$date = date('m/d/Y h:i:s a', time());
$text = $date . PHP_EOL;
$r=fwrite($myfile, $text);
echo "Write in file returned $r \n";
fclose($myfile);
echo "File closed\n";

И это вывод с Powershell:

Start-Job -ScriptBlock { D:\wamp\bin\php\php5.4.3\php.exe D:\wamp\bin\php\php5.4.3\test.php }

Id              Name            State      HasMoreData     Location             Command
--              ----            -----      -----------     --------             -------
51              Job51           Running    True            localhost             D:\wamp\bin\php\php5....

И извлекая вывод:

Receive-Job 51
I'm running in C:\Users\my_name\Documents !
Ok, file was opened:
Write in file returned 24
File closed

Надеюсь, это поможет.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]