在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 的 Exec 套件中執行雙引號參數的命令?的詳細內容。更多資訊請關注PHP中文網其他相關文章!