Editor PHP Zimo membawakan anda analisis keputusan berbeza yang membingungkan yang berlaku apabila menggunakan fungsi os/exec dalam PHP dan melaksanakan arahan pada baris arahan. Dalam aplikasi praktikal, kita mungkin menghadapi situasi di mana arahan yang boleh dilaksanakan dengan jayanya pada baris arahan tidak boleh memperoleh hasil yang sama apabila menggunakan fungsi os/exec. Keadaan ini sering menyebabkan kita keliru dan sukar untuk mencari penyelesaian. Artikel ini akan menganalisis sebab anda dan menyediakan penyelesaian untuk membantu anda memahami dan menggunakan fungsi os/exec dengan lebih baik.
Saya menulis program untuk menjalankan arahan dalam golang menggunakan pakej os/exec
.
import ( "fmt" "os/exec" ) func main() { cmd := exec.Command("taskkill", "/f /im VInTGui.exe") err := cmd.Run() if err != nil { fmt.Printf("err: %v\n", err) } }
Apabila saya menjalankan program, ia mencetak: err: exit status 1
Tetapi apabila saya menjalankan arahan taskkill /f /im vintgui.exe
dalam baris arahan windows. Ia berjaya.
Mengapa menjalankan arahan melalui pakej os/exec
包运行命令和直接通过windows命令行
(使用相同用户相同权限)运行命令有不同的结果?如何修复我的程序?
解决方案是使用 command
对象的 stderr
mempunyai hasil yang berbeza daripada menjalankan arahan secara terus melalui windows command line
(menggunakan pengguna yang sama dan kebenaran yang sama)? Bagaimanakah saya boleh membetulkan program saya?
Penyelesaian
Penyelesaian adalah dengan menggunakan sifat stderr
objek command
. Ini boleh dilakukan seperti ini:
cmd := exec.command("taskkill", "/f /im vintgui.exe") var out bytes.buffer var stderr bytes.buffer cmd.stdout = &out cmd.stderr = &stderr err := cmd.run() if err != nil { fmt.printf("%v: %s\n", err, stderr.string()) return } fmt.println("result: " + out.string())
Mengikut situasi anda, ubah sahaja
exec.command("taskkill", "/f /im vintgui.exe")
exec.Command("taskkill", "/f", "/im", "VInTGui.exe")
Atas ialah kandungan terperinci Keputusan yang membingungkan berbeza antara menggunakan os/exec dan melaksanakan daripada baris arahan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!