Heim > Artikel > Backend-Entwicklung > Wie führe ich den Befehl „find“ mit Argumenten in doppelten Anführungszeichen in Windows mithilfe des Pakets „exec“ aus?
Ausführen des Suchbefehls mit Argumenten in doppelten Anführungszeichen in Windows mithilfe des Exec-Pakets
Beim Ausführen des Suchbefehls mit Argumenten in doppelten Anführungszeichen in Windows Bei Verwendung des Exec-Pakets können Benutzer aufgrund unerwarteter Escape-Fehler durch die Windows-Shell auf Probleme stoßen. Um dieses Problem zu beheben, muss das SysProcAttr-Feld der exec.Command-Struktur geändert werden.
Der folgende Codeausschnitt bietet eine Problemumgehung:
<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>
Durch die direkte Festlegung von CmdLine in SysProcAttr Wir umgehen die vom Exec-Paket durchgeführte Standardargumentenanalyse, sodass wir die Befehlszeile genau so angeben können, wie wir es möchten, einschließlich Argumenten in doppelten Anführungszeichen. Leider erfordert diese Lösung eine direkte Manipulation des Typs syscall.SysProcAttr, was nicht gut dokumentiert ist. Es bietet jedoch eine zuverlässige Möglichkeit, den Suchbefehl mit den gewünschten Argumenten in Windows-Umgebungen auszuführen.
Das obige ist der detaillierte Inhalt vonWie führe ich den Befehl „find“ mit Argumenten in doppelten Anführungszeichen in Windows mithilfe des Pakets „exec“ aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!