L'éditeur PHP Zimo vous propose une analyse des résultats étonnamment différents qui se produisent lors de l'utilisation de la fonction os/exec en PHP et de l'exécution de commandes sur la ligne de commande. Dans les applications pratiques, nous pouvons rencontrer une situation où une commande qui peut être exécutée avec succès sur la ligne de commande ne peut pas obtenir le même résultat lors de l'utilisation de la fonction os/exec. Cette situation nous laisse souvent confus et difficile à trouver une solution. Cet article analysera vos raisons et vous proposera des solutions pour vous aider à mieux comprendre et appliquer la fonction os/exec.
J'ai écrit un programme pour exécuter des commandes dans Golang à l'aide du package 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) } }
Lorsque je lance le programme, il affiche : err: exit status 1
Mais quand j'exécute la commande taskkill /f /im vintgui.exe
dans la ligne de commande Windows. Ça a marché.
Pourquoi l'exécution de commandes via le package os/exec
包运行命令和直接通过windows命令行
(使用相同用户相同权限)运行命令有不同的结果?如何修复我的程序?
解决方案是使用 command
对象的 stderr
a-t-elle des résultats différents de l'exécution de commandes directement via la ligne de commande Windows
(en utilisant le même utilisateur et les mêmes autorisations) ? Comment puis-je réparer mon programme ?
Solution
La solution consiste à utiliser la propriété stderr
de l'objet command
. Cela peut être fait comme ceci :
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())
Selon votre situation, changez simplement
exec.command("taskkill", "/f /im vintgui.exe")
exec.Command("taskkill", "/f", "/im", "VInTGui.exe")
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!