Maison > développement back-end > Golang > Pourquoi `exec.Command('del', ...) ` échoue-t-il dans Golang sous Windows et comment puis-je y remédier ?

Pourquoi `exec.Command('del', ...) ` échoue-t-il dans Golang sous Windows et comment puis-je y remédier ?

Susan Sarandon
Libérer: 2024-12-29 02:23:11
original
533 Les gens l'ont consulté

Why Does `exec.Command(

Exécution de commandes Windows dans Golang : dépannage de l'erreur 'del' Executable Not Found

Votre tentative d'exécution de la commande "del" à l'aide de exec. Command("del", "c:\aaa.txt") dans Golang a généré un message d'erreur indiquant que le fichier exécutable n'a pas été trouvé dans le système chemin.

Contrairement à d'autres systèmes d'exploitation, Windows possède des commandes intégrées qui ne sont pas disponibles en tant qu'exécutables autonomes. Ces commandes sont exécutées via l'invite de commande (cmd.exe). Pour exécuter ces commandes dans Golang, vous devez utiliser le préfixe « cmd /c ».

L'extrait de code suivant montre comment exécuter correctement la commande « del » dans Windows à l'aide de Golang :

package main

import (
    "fmt"
    "os/exec"
    "runtime"
)

func main() {
    var c *exec.Cmd

    switch runtime.GOOS {
    case "windows":
        c = exec.Command("cmd", "/C", "del", "D:\a.txt")

    default: // Mac & Linux
        c = exec.Command("rm", "-f", "/d/a.txt")
    }

    if err := c.Run(); err != nil {
        fmt.Println("Error:", err)
    }
}
Copier après la connexion

Dans cet extrait de code :

  • Nous utilisons switch runtime.GOOS pour déterminer le fonctionnement système d'exploitation.
  • Pour Windows ("windows"), nous utilisons le préfixe "cmd /C" avant la commande, suivi de la commande elle-même et de ses arguments.
  • Pour les autres systèmes d'exploitation (Mac et Linux), nous utilisons la commande "rm" au lieu de "del".

Ce code exécutera correctement la commande "del" sous Windows et supprimera le fichier spécifié, alors que la tentative précédente de directement exécuter "del" échouerait.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal