golangでwindowsコマンドを実行する

Ab1010:

GolangプログラムからWindowsコマンドを実行するための既存の解決策を見てきましたが、どれもうまくいきません。私の目的は.png、goプログラムからファイルを開くことです。

以下はサンプルプログラムです。画像ファイルは開きません。私はdirテストのために試してみています。

package main

import (
    "log"
    "os"
    "os/exec"
    "runtime"
)

func main() {
    cmd := exec.Command("ls", "-lah")
    if runtime.GOOS == "windows" {
        cmd = exec.Command("cmd", "dir")
    }
    cmd.Stdout = os.Stdout

    err := cmd.Run()
    if err != nil {
        log.Fatalf("cmd.Run() failed with %s\n", err)
    }
}

cmd = exec.Command("dir")13行目も試してみました。プログラムはエラーや出力なしで存在します。エラーが表示されないため、実行は成功したようです。いくつかのバリエーションを試しましたが、成功しませんでした。

私はVSCodeを使用していますとしてこのプログラムを実行しようとしたビルトインcmdwslVSCodeに。を使用wslしてプログラムを実行すると、ls -lahcmdの出力のみが表示されますウィンドウズ出力を指示する方法があるかどうかわかりません。どんな助けでもありがたいです。ありがとう。

英国人:

cmd.exeはWindowsコマンドインタープリターです。実行するコマンドを渡したい場合は、/ cパラメータを使用する必要がありますcmd /c dirあなたが入力した場合cmd dir、コマンドプロンプトで、あなたの現在の行くアプリケーションと同じ結果が得られます(ことを除いてCMDプロンプトしません自動的に近いため、標準入力の不足)。これを実行cmd /?すると、次のように説明されます。

/ C文字列で指定されたコマンドを実行して終了します

したがって、アプリケーションを修正するには、以下を使用します。

cmd = exec.Command("cmd", "/c", "dir")

これを行う別の方法は、stdinを介してコマンドを渡すことです。

cmd := exec.Command("cmd")
cmd.Stdout = os.Stdout
stdin, err := cmd.StdinPipe()
if err != nil {
    log.Fatal(err)
}
go func() {
    defer stdin.Close()
    io.WriteString(stdin, "dir\n")
}()
err = cmd.Run()
if err != nil {
    log.Fatalf("cmd.Run() failed with %s\n", err)
}

BMPファイルを開く簡単な方法は次のとおりですcmd = exec.Command("explorer.exe", "test.bmp")(これにより、デフォルトのアプリケーションが何であってもファイルが開きます)。

注:そもそも実行する必要cmdがあるのdirは、が提供する内部コマンドだからcmd.exeです(dir dir.* /swindowsフォルダーで実行した場合、何もないdir.exeか類似しているため、何も見つからない;に埋め込まれているcmd.exe)。

注2:ls / dirをこのように実行して、フォルダーの内容を(例としてではなく)取得している場合は、ioutil.ReadDirの方が適しています。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

WindowsでGolangからnetshコマンドを実行する方法

分類Dev

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

分類Dev

GolangでSQL Plusコマンドを実行する

分類Dev

Javaでffmpegコマンド(Windows)を実行する方法

分類Dev

WindowsのJava ProcessBuilderでMySQLコマンドを実行する

分類Dev

Windowsで「brew」コマンドを実行する方法..?

分類Dev

GPUでTheanoを実行するコマンド(Windows)

分類Dev

WindowsのcmdでPythonコマンドを直接実行する

分類Dev

Windowsで./コマンドを実行する方法

分類Dev

WindowsのMatlabでUnixコマンドを実行する方法は?

分類Dev

Java で Windows コマンドを実行する

分類Dev

winexeを使用してWindowsマシンで「wmic」コマンドを実行する

分類Dev

Golang:引数を指定してコマンドを実行する

分類Dev

golangのコマンドでSQLファイルを実行する方法

分類Dev

同じシェルgolangで複数のExecコマンドを実行する

分類Dev

Windows上でC ++コードからWSLコマンドを実行する

分類Dev

Golangで安全にコマンドを実行する(リモート実行を回避する)

分類Dev

Golang-コマンドを実行する

分類Dev

Windows Javaでcurlコマンドを実行するための同等のコマンドはどれですか?

分類Dev

Windowsでコマンドラインからjupyterを実行する

分類Dev

Windowsコマンドプロンプトで.shを実行する方法

分類Dev

Windowsでcmdを介してmongodbコマンドを実行する

分類Dev

Windowsでsubprocess.runを使用してbashコマンドを実行する方法

分類Dev

Rubyを使用してWindowsでコマンドを実行する方法

分類Dev

Linuxでplink.exe [windows]からsudoコマンドを実行する

分類Dev

Windowsバッチファイルコマンドを非同期で実行する

分類Dev

WindowsのAndroidStudioでgradleラッパー/ gradlewコマンドを実行する方法

分類Dev

Windows10のApacheNiFiでLinuxbashコマンドを実行する方法

分類Dev

Windowsで管理者としてコマンドを実行する方法

Related 関連記事

  1. 1

    WindowsでGolangからnetshコマンドを実行する方法

  2. 2

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

  3. 3

    GolangでSQL Plusコマンドを実行する

  4. 4

    Javaでffmpegコマンド(Windows)を実行する方法

  5. 5

    WindowsのJava ProcessBuilderでMySQLコマンドを実行する

  6. 6

    Windowsで「brew」コマンドを実行する方法..?

  7. 7

    GPUでTheanoを実行するコマンド(Windows)

  8. 8

    WindowsのcmdでPythonコマンドを直接実行する

  9. 9

    Windowsで./コマンドを実行する方法

  10. 10

    WindowsのMatlabでUnixコマンドを実行する方法は?

  11. 11

    Java で Windows コマンドを実行する

  12. 12

    winexeを使用してWindowsマシンで「wmic」コマンドを実行する

  13. 13

    Golang:引数を指定してコマンドを実行する

  14. 14

    golangのコマンドでSQLファイルを実行する方法

  15. 15

    同じシェルgolangで複数のExecコマンドを実行する

  16. 16

    Windows上でC ++コードからWSLコマンドを実行する

  17. 17

    Golangで安全にコマンドを実行する(リモート実行を回避する)

  18. 18

    Golang-コマンドを実行する

  19. 19

    Windows Javaでcurlコマンドを実行するための同等のコマンドはどれですか?

  20. 20

    Windowsでコマンドラインからjupyterを実行する

  21. 21

    Windowsコマンドプロンプトで.shを実行する方法

  22. 22

    Windowsでcmdを介してmongodbコマンドを実行する

  23. 23

    Windowsでsubprocess.runを使用してbashコマンドを実行する方法

  24. 24

    Rubyを使用してWindowsでコマンドを実行する方法

  25. 25

    Linuxでplink.exe [windows]からsudoコマンドを実行する

  26. 26

    Windowsバッチファイルコマンドを非同期で実行する

  27. 27

    WindowsのAndroidStudioでgradleラッパー/ gradlewコマンドを実行する方法

  28. 28

    Windows10のApacheNiFiでLinuxbashコマンドを実行する方法

  29. 29

    Windowsで管理者としてコマンドを実行する方法

ホットタグ

アーカイブ