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
Susan SarandonOriginal
2024-12-29 02:23:11542Durchsuche

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)
    }
}

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!

Stellungnahme:
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