Wie führe ich Befehle mit Argumenten in doppelten Anführungszeichen im Exec-Paket von Go unter Windows aus?

Mary-Kate Olsen
Freigeben: 2024-10-30 20:13:30
Original
709 Leute haben es durchsucht

How to Execute Commands with Double Quoted Arguments in Go's Exec Package on Windows?

Befehl mit Argumenten in doppelten Anführungszeichen im Exec-Paket für Windows ausführen

Das Ausführen von Befehlen mit dem Paket exec erfordert sorgfältige Aufmerksamkeit beim Umgang mit Argumenten in doppelten Anführungszeichen Argumente, insbesondere in Windows-Umgebungen. Dieser Artikel befasst sich mit einem besonderen Problem im Zusammenhang mit dem Suchbefehl und bietet eine Lösung für dessen korrekte Ausführung.

Das Problem tritt auf, wenn versucht wird, einen Befehl wie den folgenden auszuführen:

out, err := exec.Command("find", `"SomeText"`).Output()
Nach dem Login kopieren

Unter Windows ist dies der Fall Der Befehl schlägt aufgrund der doppelten Anführungszeichen fehl, was dazu führt, dass das Argument wie folgt maskiert wird:

find /SomeText"
Nach dem Login kopieren

Um dieses Problem zu beheben, ist ein komplexerer Ansatz erforderlich, wie der folgende Code zeigt:

<code class="go">package main

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

func main() {
    cmd := exec.Command(`find`)
    cmd.SysProcAttr = &syscall.SysProcAttr{}
    cmd.SysProcAttr.CmdLine = `find "SomeText" test.txt`
    out, err := cmd.Output()
    fmt.Printf("%s\n", out)
    fmt.Printf("%v\n", err)
}</code>
Nach dem Login kopieren

In diesem Code machen wir:

  • Legen Sie das SysProcAttr-Feld des cmd fest, um die Prozessattribute anzupassen.
  • Verwenden Sie das CmdLine-Feld, um die genaue auszuführende Befehlszeile anzugeben, einschließlich der Argument in Anführungszeichen.

Dieser Ansatz ermöglicht es uns, den Suchbefehl wie beabsichtigt mit einem Argument in doppelten Anführungszeichen auszuführen. Es ist jedoch anzumerken, dass dieses Verhalten nicht explizit in der Go-Dokumentation dokumentiert ist, was darauf hindeutet, dass es sich möglicherweise nicht um eine allgemein bekannte Funktion handelt.

Das obige ist der detaillierte Inhalt vonWie führe ich Befehle mit Argumenten in doppelten Anführungszeichen im Exec-Paket von Go unter Windows aus?. 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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!