Execu 패키지를 사용하여 Windows에서 큰따옴표 인수를 사용하여 Find 명령을 실행하는 경우
Windows에서 큰따옴표 인수를 사용하여 find 명령을 실행하는 경우 exec 패키지를 사용하면 Windows 셸의 예기치 않은 이스케이프 때문에 사용자에게 문제가 발생할 수 있습니다. 이 문제를 해결하려면 exec.Command 구조의 SysProcAttr 필드를 수정해야 합니다.
다음 코드 조각은 해결 방법을 제공합니다.
<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>
SysProcAttr에서 직접 CmdLine을 설정하면, exec 패키지가 수행하는 기본 인수 구문 분석을 우회하여 큰따옴표로 묶인 인수를 포함하여 원하는 대로 정확하게 명령줄을 지정할 수 있습니다. 불행하게도 이 솔루션에는 잘 문서화되지 않은 syscall.SysProcAttr 유형을 직접 조작해야 합니다. 그러나 Windows 환경에서 원하는 인수를 사용하여 find 명령을 실행할 수 있는 안정적인 방법을 제공합니다.
위 내용은 `exec` 패키지를 사용하여 Windows에서 큰따옴표로 묶은 인수와 함께 `find` 명령을 실행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!