문제

누구든지 PHP 스크립트에서 .bat 파일을 실행하는 방법을 말해 줄 수 있나요?

나는 시도했다:

exec("C:\[path to file]");
system("C:\[path to file]");

아무것도 작동하지 않습니다.PHP 매뉴얼을 확인하고 검색했지만 좋은 답변을 찾을 수 없습니다.내가 어디로 잘못 가고 있는지 아는 사람이 있습니까?

저는 Windows 2003 Server를 실행 중이고 .bat 파일을 수동으로 성공적으로 실행했으며 필요한 작업을 수행했습니다.프로그래밍 방식으로 시작할 수 있으면 됩니다.

도움이 되었습니까?

해결책

당신은 그것을 통해 그것을 실행해야 할 수도 있습니다 cmd, EG :

system("cmd /c C:[path to file]");

다른 팁

<?php
exec('c:\WINDOWS\system32\cmd.exe /c START C:\Program Files\VideoLAN\VLC\vlc.bat');
?>

당신이 사용할 때 exec() 기능, 마치 마치 마치 cmd 터미널이 열리고 직접 명령을 입력하고 있습니다.

이와 같은 단일 따옴표를 사용하십시오 $str = exec('start /B Path\to\batch.bat');
그만큼 /B 박쥐가 백그라운드에서 실행되므로 나머지는 PHP 반대로 해당 라인을 실행 한 후에도 계속됩니다. $str = exec('start /B /C command', $result); 어디 command 그런 다음 실행됩니다 result 나중에 사용하기 위해 저장됩니다.

추신: Windows와 Linux 모두에서 작동합니다.
자세한 내용은 여기에 있습니다 http://www.php.net/manual/en/function.exec.php :)

<?php
 pclose(popen("start /B test.bat", "r")); die();
?> 

내 Windows Machine 8 Machine을 실행하는 IIS 8에서는 배트 이름을 넣고 경로를 잊어 버리기 만하면 배치 파일을 실행할 수 있습니다. 또는 박쥐를 c : windows system32에 넣으면 그것이 어떻게 작동하는지 묻지 말고 그렇게합니다. ㅋㅋㅋ

$ test = shell_exec ( "c : windows system32 cmd.exe /c $ streamnumx.bat");

이 스니펫은 작업 코드에서 가져온 것입니다.

Windows GUI 또는 작업 스케줄러뿐만 아니라 필요할 때 PHP 스크립트에서 직접 bat 파일을 실행할 수 있습니다.그러나 대부분의 경우 30~60초 동안 실행됩니다.PHP 구성에 따라 다릅니다.BAT 파일의 작업이 길고 PHP 스크립트를 정지하지 않으려면 다음을 사용하여 BAT 작업을 다른 프로세스로 포크해야 합니다. php.exe Apache로부터 신뢰할 수 없습니다.

이것은 실행됩니다 배경 Windows의 모드는 별도의 프로세스로 표시됩니다. cmd.exe 그리고 php.exe 작업 관리자에서 Apache PHP 스크립트를 중단하지 않습니다.스크립트에 의해 생성된 메시지는 로그 파일을 통해 저장되고 다시 검색될 수 있습니다.

내 경우에는 file_scanner.php 나는 PHP 기능으로 몇 시간 동안 지속될 수 있는 큰 파일 배열에 대해 루프에서 몇 가지 무거운 계산을 수행합니다. sleep() CPU에 과부하가 걸리지 않도록

파일의 성공 포인터 결과 $r 성공 또는 잘못된 시작을 알고 싶다면 ajax를 통해 쿼리할 수 있습니다.나의 경우에는 file_scanner.php 메시지와 함께 로그 파일을 작성합니다. somefile.jpg - OK 몇 초마다 AJAX를 사용하여 UI에 로드하여 진행 상황을 표시할 수 있습니다.

PHP

/**
 * Runs bat file in background mode
 *
 */
 function run_scanner() {

    $c='start /b D:\Web\example.com\tasks\file_scanner.bat'; 
    $r=pclose(popen($c, 'r')); 
    return json_encode(array('result'=>$r));

 }

박쥐

@echo Off
D:\PHP\php.exe D:\Web\example.com\tasks\file_scanner.php > D:\Web\example.com\tasks\file_scanner.log
exit
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top