Heim > Backend-Entwicklung > Golang > Warum schlägt `exec.Command('del', ...) ` in Golang unter Windows fehl und wie kann ich das Problem beheben?

Warum schlägt `exec.Command('del', ...) ` in Golang unter Windows fehl und wie kann ich das Problem beheben?

Susan Sarandon
Freigeben: 2024-12-29 02:23:11
Original
533 Leute haben es durchsucht

Why Does `exec.Command(

Ausführen von Windows-Befehlen in Golang: Fehlerbehebung beim Fehler „Ausführbare Datei „del“ nicht gefunden“

Ihr Versuch, den Befehl „del“ mit exec auszuführen. Der Befehl („del“, „c:\aaa.txt“) in Golang führte zu einer Fehlermeldung, die darauf hinweist, dass die ausführbare Datei nicht gefunden wurde im Systempfad.

Im Gegensatz zu anderen Betriebssystemen verfügt Windows über integrierte Befehle, die nicht als eigenständige ausführbare Dateien verfügbar sind. Diese Befehle werden über die Eingabeaufforderung (cmd.exe) ausgeführt. Um diese Befehle in Golang auszuführen, müssen Sie das Präfix „cmd /c“ verwenden.

Der folgende Codeausschnitt zeigt, wie Sie den „del“-Befehl in Windows mit Golang korrekt ausführen:

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)
    }
}
Nach dem Login kopieren

In diesem Codeausschnitt:

  • Wir verwenden switch runtime.GOOS, um den Betrieb zu bestimmen System.
  • Für Windows („Windows“) verwenden wir das Präfix „cmd /C“ vor dem Befehl, gefolgt vom Befehl selbst und seinen Argumenten.
  • Für andere Betriebssysteme (Mac und Linux) verwenden wir den Befehl „rm“ anstelle von „del“.

Dieser Code führt den Befehl „del“ in Windows korrekt aus und löscht die angegebene Datei, während der vorherige Versuch dies direkt versucht „del“ ausführen würde fehlschlagen.

Das obige ist der detaillierte Inhalt vonWarum schlägt `exec.Command('del', ...) ` in Golang unter Windows fehl und wie kann ich das Problem beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage