第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

帶有雙引號參數(shù)的 exec

帶有雙引號參數(shù)的 exec

Go
牛魔王的故事 2021-09-21 15:11:58
我想find使用exec包執(zhí)行Windows 命令,但 Windows 正在做一些奇怪的轉(zhuǎn)義。我有類似的東西: out, err := exec.Command("find", `"SomeText"`).Output()但這會引發(fā)錯誤,因?yàn)?Windows 正在將其轉(zhuǎn)換為 find /SomeText"有誰知道為什么?如何find使用 exec 包在 Windows 上執(zhí)行?
查看完整描述

2 回答

?
寶慕林4294392

TA貢獻(xiàn)2021條經(jīng)驗(yàn) 獲得超8個贊

OK,這是一個比較復(fù)雜一點(diǎn)比你預(yù)期,但有是一個解決方案:


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)

}

不幸的是,盡管在 2011 年添加了對此的支持,但似乎尚未將其納入文檔。(雖然也許我只是不知道在哪里看。)


查看完整回答
反對 回復(fù) 2021-09-21
?
慕尼黑5688855

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超2個贊

僅供參考,運(yùn)行:


package main


import (

    "fmt"

    "os/exec"

)


func main() {

    cmd := exec.Command("find", `"SomeText"`)

    fmt.Printf("Path: %q, args[1]: %q\n", cmd.Path, cmd.Args[1])

}

playground


在 unix 上給出:


Path: "/usr/bin/find", args[1]: "\"SomeText\""

并交叉編譯到 Windows 并在 Win7 上運(yùn)行給出:


Path: "C:\\Windows\\system32\\find.exe", args[1]: "\"SomeText\""

兩者在我看來都是正確的。


添加out, err := cmd.Output()到 Windows 交叉編譯為以下內(nèi)容提供fmt.Printf("%#v\%v\n", err, err):


&exec.ExitError{ProcessState:(*os.ProcessState)(0xc0820046a0)}

exit status 1

但我想那只是因?yàn)?find 找不到任何東西。


查看完整回答
反對 回復(fù) 2021-09-21
  • 2 回答
  • 0 關(guān)注
  • 254 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號