亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

在 %PATH% golang 中找不到可執行文件

在 %PATH% golang 中找不到可執行文件

Go
一只名叫tom的貓 2022-11-23 20:26:21
package mainimport (    "bytes"    "fmt"    //"log"    "os/exec")func main() {    cmd := exec.Command("dir")    var stdout, stderr bytes.Buffer    cmd.Stdout = &stdout    cmd.Stderr = &stderr    err := cmd.Run()    if err != nil {        fmt.Printf("cmd.Run: %s failed: %s\n", err, err)    }    outStr, errStr := string(stdout.Bytes()), string(stderr.Bytes())    if len(errStr) > 1 {        fmt.Printf("out:\n%s\nerr:\n%s\n", outStr, errStr)    }    fmt.Printf(outStr)}*大家好,每當我嘗試使用 go 運行此文件時,它都會顯示此錯誤“cmd.Run:exec:“dir”:在 %PATH% 中找不到可執行文件失?。骸薄N业?PATH 中有 golang 但它仍然失敗 *
查看完整描述

1 回答

?
紅糖糍粑

TA貢獻1815條經驗 獲得超6個贊

dir在 Windows 中不是可執行文件,而是命令提示符的內部命令。您需要將 dir 傳遞給命令提示符。您的命令將如下所示:

cmd.exe /c 目錄

你可以這樣實現它:

args := strings.Split("/c dir"," ")

cmd := exec.Command("cmd.exe",args...)

像這樣傳遞命令行參數,strings.Split() 會將“/c dir”拆分為所有由“”分隔的子字符串,并返回這些分隔符之間的一部分子字符串。

此外,如果您需要打印特定位置的目錄,您可以設置命令的工作目錄:

cmd.Dir = filepath.Join("C:","Windows")

filepath.Join 將任意數量的路徑元素連接到一個路徑中,用操作系統特定的分隔符將它們分開。

將以下包添加到您的文件中

導入(“操作系統”“路徑/文件路徑”“字符串”)

要打印結果,您可以將輸出和錯誤連接到標準輸出和標準錯誤。

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)
    }

}


查看完整回答
反對 回復 2022-11-23
  • 1 回答
  • 0 關注
  • 186 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號