web-dev-qa-db-ja.com

Golangで簡単なWindowsコマンドを実行する方法は?

シンプルなWindowsコマンドを実行する方法

このコマンド:

exec.Command("del", "c:\\aaa.txt")

..このメッセージを出力します:

del:実行可能ファイルが%path%に見つかりません

何が悪いのですか?

26
Yster

あなたと同じエラーが発生しました。しかし、dystroyは正しいです。del.exeファイルがないため、delまたはcmdに組み込まれている他のコマンドを実行できません(または、そのために実行可能なその他のファイル)。

私はそれを使って動作させました:

package main

import(
    "fmt"
    "os/exec"
)

func main(){    
    c := exec.Command("cmd", "/C", "del", "D:\\a.txt")

    if err := c.Run(); err != nil { 
        fmt.Println("Error: ", err)
    }   
}
43
ANisus

dirコマンドを実行するには、Windowsコマンドが必要です。

これを試して :

cmd := exec.Command("cmd", "/C", "dir").Output()

(申し訳ありませんが、現在それをチェックするWindowsコンピュータはありません)

6
Denys Séguret

Cmdの出力が必要な場合:

if c, err := exec.Command("cmd","/c","del","a.txt").CombinedOutput(); err != nil {
        log.Fatal(err)
    } else {
        fmt.Printf("%s\n", c)
    }

別の解決策も見つけました。次を含むバッチファイルを作成します。del c:\ aaa.txt

次に、次のように呼び出します。

exec.Command("c:\\del.bat").Run()
1
Yster