2013-09-30 73 views
5

我試圖使用PHP中的exec命令執行批處理文件。 我只是用它像:如何通過PHP執行批處理文件?

$filename = 'test.bat'; 
exec($filename); 

但沒有得到任何輸出。我用另一個命令嘗試了這個功能,它工作正常。 您的建議將不勝感激。 謝謝

+1

你應該設置在$文件名的路徑那裏有數字。也許它沒有找到文件的路徑。 –

回答

7

的主要問題是的pathpermission。我已經獲得我的批處理文件執行。

這裏是我的解決方案:

  1. 我從同一個文件夾中的PHP文件是在我的批處理文件

    exec("mybatch.bat");

  2. 我要確保Apache服務有足夠的權限運行批處理文件。只是爲了測試我用Apache的管理員帳戶登錄。

+2

正確的解決方案,批處理文件和php文件都在同一個文件夾中 – 2013-09-30 07:29:17

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

作爲「RichieHindle」在類似的話題中說。

,或者嘗試

exec("cmd.exe /c test.bat") ? 
0

因爲它在exec doc解釋:

echo exec($filename); 

exec($filename, $output); 
echo $output; 
1

的Windows服務器心目中的報價。這對我來說是什麼在起作用:

system('cmd.exe /c C:\myfolder\_batches\run_this_batch.bat'); 
1

我所做的是以下幾點:

  1. 創建了一個包含PHP文件:

    $gotIt = array(); 
    $file = "getMyIP.bat"; 
    exec($file, $gotIt); 
    echo implode("<br>",$gotIt); 
    
  2. 創建在同一文件夾中的批處理文件

    @ECHO off 
    ipconfig 
    
  3. 運行並等待防火牆跳過所有操作。

然後我得到了一個輸出,如:

Windows IP Configuration 


PPP adapter 3 USB Modem: 

Connection-specific DNS Suffix . : 
IP Address. . . . . . . . . . . . : ***.***.202.81 
Subnet Mask . . . . . . . . . . . : 255.255.255.255 
Default Gateway . . . . . . . . . : ***.***.202.81 

只有在***的是

相關問題