1 回答

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超6個(gè)贊
dir在 Windows 中不是可執(zhí)行文件,而是命令提示符的內(nèi)部命令。您需要將 dir 傳遞給命令提示符。您的命令將如下所示:
cmd.exe /c 目錄
你可以這樣實(shí)現(xiàn)它:
args := strings.Split("/c dir"," ")
cmd := exec.Command("cmd.exe",args...)
像這樣傳遞命令行參數(shù),strings.Split() 會(huì)將“/c dir”拆分為所有由“”分隔的子字符串,并返回這些分隔符之間的一部分子字符串。
此外,如果您需要打印特定位置的目錄,您可以設(shè)置命令的工作目錄:
cmd.Dir = filepath.Join("C:","Windows")
filepath.Join 將任意數(shù)量的路徑元素連接到一個(gè)路徑中,用操作系統(tǒng)特定的分隔符將它們分開。
將以下包添加到您的文件中
導(dǎo)入(“操作系統(tǒng)”“路徑/文件路徑”“字符串”)
要打印結(jié)果,您可以將輸出和錯(cuò)誤連接到標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤。
cmd.Stdout = os.Stdout cmd.Stderr = &os.Stderr
您的整體代碼將是:
package main import ( "fmt" "os" "os/exec" "path/filepath" "strings")func main() { args := strings.Split("/c dir"," ") cmd := exec.Command("cmd.exe",args...) cmd.Dir = filepath.Join("C:","Windows") cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr err := cmd.Run() if err != nil { fmt.Printf("cmd.Run: %s failed: %s\n", err, err) } }
- 1 回答
- 0 關(guān)注
- 194 瀏覽
添加回答
舉報(bào)