2014-12-29 2 views
0

내가 보이는 PHP 스크립트를 가지고 같은 :Start-Job PHP 스크립트가 Powershell에서 작동하지 않습니까?

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); 

나는

php myscript.php 

생성에 기록 된 텍스트 파일을 사용하여 PowerShell에서 위의 스크립트를 실행합니다.

내가

Start-Job ScriptBlock {php myscript.php} 

와 같은 파일을 실행하려고하면 내가

enter image description here

같은 응답이하지만 내 텍스트 파일에 기록되지 않습니다 얻을 수 있습니다. Start-Job처럼 내 PHP 스크립트가 시작되지 않는 것 같습니다.

Start-Job에 PHP 스크립트 실행을 시작하려면 어떻게합니까?

+0

중지 작업 및 수신 작업에서의 반환은 무엇입니까? 나는 php와 스크립트에 대한 완전한 경로를 필요로하는 경로 문제에 대해 생각하고있다. 그러나 나는 powershell에 익숙하지 않다. 그래서 그것은 단지 아이디어 일 뿐이다. – Tensibai

+0

@Tensibai'stop-job' 또는'receive-job'에서 응답이 없습니다. 나는'php.exe'에'php.exe '에 대한 완전한 경로를 제공하려고 시도했지만, 주사위는 아직 없습니다. –

+0

myscript.php (전체 경로 포함)와 동일합니까? 그러나 오류 파일을 찾지 못하면 찾을 수없는 오류 파일로 종료해야합니다. get-job에 대한 호출이 여전히 실행 중입니까? 당신은 또한 PHP 프로세스가 시작되었는지 아닌지를보기 위해 작업 관리자가있는 프로세스를 볼 수도 있습니다 ... (그들이 올 때 아이디어를 제공합니다) – Tensibai

답변

0

좋아 나는이 모든에 대한 답변을 쓸 것이다 : 테스트에서

(원점으로 스크립트와 함께) 나는 어떤에서 뭔가를 얻을 수신-작업을 PowerShell에서하는 에코 덧붙였다.

의도 한대로 스크립트가 실행 중이지만 예상 된 디렉터리에서는 실행되지 않았습니다.

에코 내에서 getcwd()을 추가 했으므로 작업 (또는 scriptblock)의 작업 디렉토리가 내 문서 디렉토리임을 보여 주므로 내 홈 \ 문서와 함께 파일을 발견했습니다.

여기

내가 함께 eneded 최종 스크립트를

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"; 

그리고이 출력은 파워 쉘 함께 :

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 

그것이 희망을 도움.

관련 문제