2012-10-22 25 views
16

Goで単純なDOSコマンドを実行する方法を教えてもらえますか?Golangで簡単なWindows DOSコマンドを実行するには?

このような何か実行している場合:

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

出力は次のとおりです。

「デル:実行ファイル%パス%に見られない」アゲイン

を、私は、これは単純な仕事だろうと思いましたしかし、2時間の検索の後、私はこれの例を見つけることができませんでした。誰かが私が間違っていることを教えてもらえますか?私はGoの最も単純な一般的なタスクについて良い例を見つけることができないためです。

答えて

29

私はあなたと同じエラーを得た:

はこれを試してみてください。 しかし、dystroyは正しいです:またはに組み込まれている他のコマンドは、del.exeファイル(またはそれに関して他のdel-executable)がないので実行できません。私はそれがで動作するようになった

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

ANisusから削除する特権を持つGoプログラムを実行してください。助けてくれてありがとう! – Yster

+0

もし私がそれをMac OSで使いたいのであれば? 何か 'cmd:= exec.Command(" cmd "、" killall opera ")' 私のためには機能しません。 'command:= exec.Command(" bash "、" -c "、" ")'のようなMac上の –

+0

は役に立ちます – ffel

5

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

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

(申し訳ありませんが、Windowsコンピュータが今それをチェックしないように)

+0

こんにちはdystroy。私はそれとそのバリエーションを試しましたが、うまくいかないようです。それは動くが、何も起こらない。例:\t exec.Command( "cmd/c del c:\\ bbb \\ aaa.txt")。試してくれてありがとう。 – Yster

+2

C:から削除しているので、C: – ANisus

1

はあまりにも別の解決策を見つけました。以下を含むバッチファイルを作成します。del C:\ aaa.txt

次に、このようにそれを呼び出す:

exec.Command("c:\\del.bat").Run() 
関連する問題