Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Execute the 'cd' command for CMD in Go

Tags:

go

exec

I want to use Go and the exec library to go to a certain path, "c:", and run a .exe file.

When I run my Go code, it gives me:

exec: "cd:/": file does not exist

like image 427
Jilan Avatar asked Oct 23 '25 09:10

Jilan


1 Answers

The cd command is a builtin of your shell, whether bash, cmd.exe, PowerShell, or otherwise. You would not exec a cd command and then exec the program you want to run. Instead, you want to set the Dir of the Cmd you're going to run to the directory containing the program:

package main

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

func main() {
    cmd := exec.Command("program") // or whatever the program is
    cmd.Dir = "C:/usr/bin"         // or whatever directory it's in
    out, err := cmd.Output()
    if err != nil {
        log.Fatal(err)
    } else {
        fmt.Printf("%s", out);
    }
}

See the Cmd documentation for more information. Alternatively, you could use os/Chdir to change the working directory before running the program.

like image 133
David Conrad Avatar answered Oct 26 '25 03:10

David Conrad