Windows용 Exec 패키지에서 큰따옴표 인수를 사용하여 명령 실행
exec 패키지를 사용하여 명령을 실행할 때는 큰따옴표 처리에 주의가 필요합니다. 특히 Windows 환경에서는 인수입니다. 이 기사에서는 find 명령과 관련된 특이한 문제를 살펴보고 이를 올바르게 실행하기 위한 솔루션을 제공합니다.
이 문제는 다음과 같은 명령을 실행하려고 할 때 발생합니다.
out, err := exec.Command("find", `"SomeText"`).Output()
Windows에서는 이 문제가 발생합니다. 인수가 다음과 같이 이스케이프되도록 하는 큰따옴표로 인해 명령이 실패합니다.
find /SomeText"
이 문제를 해결하려면 다음 코드에서 볼 수 있듯이 더 복잡한 접근 방식이 필요합니다.
<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>
이 코드에서는 다음을 수행합니다.
이 접근 방식을 사용하면 의도한 대로 큰따옴표로 묶인 인수를 사용하여 find 명령을 실행할 수 있습니다. 그러나 이 동작이 Go 문서에 명시적으로 문서화되어 있지 않아 널리 알려진 기능이 아닐 수도 있다는 점은 주목할 가치가 있습니다.
위 내용은 Windows의 Go\'s Exec 패키지에서 큰따옴표 인수가 포함된 명령을 실행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!