在Windows 中使用Exec 包執行帶雙引號參數的Find 命令
在Windows 中執行帶雙引號參數的find 命令時使用exec 套件時,使用者可能會遇到由於Windows shell 意外轉義而導致的問題。若要解決此問題,需要修改 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 命令的可靠方法。
以上是如何在 Windows 中使用“exec”套件執行帶有雙引號參數的“find”命令?的詳細內容。更多資訊請關注PHP中文網其他相關文章!