web-dev-qa-db-fra.com

Comment exécuter une commande Windows simple dans Golang?

Comment exécuter une simple commande Windows?

Cette commande:

exec.Command("del", "c:\\aaa.txt")

.. envoie ce message:

del: fichier exécutable non trouvé dans% path%

Qu'est-ce que je fais mal?

22
Yster

J'ai la même erreur que vous . Mais dystroy est correct: vous ne pouvez pas exécuter del ni aucune autre commande intégrée à cmd car il n’existe aucun fichier del.exe (ni aucun autre exécutable de del à cet égard).

Je l'ai eu pour travailler avec:

package main

import(
    "fmt"
    "os/exec"
)

func main(){    
    c := exec.Command("cmd", "/C", "del", "D:\\a.txt")

    if err := c.Run(); err != nil { 
        fmt.Println("Error: ", err)
    }   
}
41
ANisus

Vous avez besoin d'une cmd Windows pour exécuter votre commande dir.

Essaye ça :

cmd := exec.Command("cmd", "/C dir").Output()

(désolé, pas d'ordinateur Windows pour le vérifier maintenant)

6
Denys Séguret

Trouvé une autre solution aussi. Créez un fichier de commandes contenant les éléments suivants: del c:\aaa.txt

Puis appelez ça comme ça:

exec.Command("c:\\del.bat").Run()
1
Yster

Si vous avez besoin de la sortie de cmd:

if c, err := exec.Command("cmd","/c","del","a.txt").CombinedOutput(); err != nil {
        log.Fatal(err)
    } else {
        fmt.Printf("%s\n", c)
    }