Maison > développement back-end > Golang > Comment exécuter la commande « find » avec des arguments entre guillemets doubles dans Windows à l'aide du package « exec » ?

Comment exécuter la commande « find » avec des arguments entre guillemets doubles dans Windows à l'aide du package « exec » ?

Patricia Arquette
Libérer: 2024-10-31 01:55:29
original
1075 Les gens l'ont consulté

How to Execute `find` Command with Double-Quoted Arguments in Windows Using the `exec` Package?

Exécution de la commande Find avec des arguments entre guillemets doubles dans Windows à l'aide du package Exec

Lors de l'exécution de la commande Find avec des arguments entre guillemets doubles dans Windows En utilisant le package exec, les utilisateurs peuvent rencontrer des problèmes en raison d'un échappement inattendu par le shell Windows. Pour résoudre ce problème, il est nécessaire de modifier le champ SysProcAttr de la structure exec.Command.

L'extrait de code suivant fournit une solution de contournement :

<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>
Copier après la connexion

En définissant CmdLine directement dans SysProcAttr, nous contournons l'analyse des arguments par défaut effectuée par le package exec, ce qui nous permet de spécifier la ligne de commande exactement comme nous le souhaitons, y compris les arguments entre guillemets. Malheureusement, cette solution nécessite une manipulation directe du type syscall.SysProcAttr, qui n'est pas bien documenté. Cependant, il fournit un moyen fiable d'exécuter la commande find avec les arguments souhaités dans les environnements Windows.

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