2013-09-30 14 views
5

Tôi đã cố thực hiện tệp bó bằng lệnh exec trong PHP. Tôi chỉ sử dụng nó như:Làm thế nào để thực thi tập tin batch thông qua PHP?

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

Nhưng không nhận được bất kỳ đầu ra nào. Tôi đã thử chức năng này với một lệnh khác, nó hoạt động tốt. Đề xuất của bạn sẽ được đánh giá cao. Cảm ơn

+1

có lẽ bạn nên thiết lập các đường dẫn trên $ filename. có lẽ nó không tìm thấy đường dẫn của tập tin. –

Trả lời

7

Vấn đề chính là của pathpermission. Tôi đã nhận được tập tin thực thi của mình.

Đây là giải pháp của tôi:.

  1. tôi chạy tập tin thực thi của tôi từ cùng một thư mục file php là trong

    exec("mybatch.bat");

  2. Tôi chắc chắn rằng Apache Service có đủ quyền để chạy tập tin thực thi. Chỉ để kiểm tra tôi đã sử dụng tài khoản quản trị viên để đăng nhập vào Apache.

+2

Giải pháp đúng, cả tệp Batch và tệp php đều nằm trong cùng một thư mục –

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

Như "RichieHindle" đã nói trong một chủ đề tương tự.

hoặc thử

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

Vì nó được giải thích trong exec doc:

echo exec($filename); 

hoặc

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

On của Windows máy chủ tâm có dấu ngoặc kép. Đây là những gì làm việc cho tôi:

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

Những gì tôi đã làm là như sau:

  1. tạo ra một file PHP có chứa:

    $gotIt = array(); 
    $file = "getMyIP.bat"; 
    exec($file, $gotIt); 
    echo implode("<br>",$gotIt); 
    
  2. Tạo một batchfile trong cùng một thư mục

    @ECHO off 
    ipconfig 
    
  3. Chạy nó và đợi tường lửa nhảy qua hành động.

sau đó tôi nhận được một kết quả như:

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 

chỉ theres số nơi *** 's là

Các vấn đề liên quan