package main
import ( "os/exec" )
func main() { cmd:= exec.Command("cd", "/") cmd.Run() } 这样试着执行cd命令但是不行。问一下如何执行cd命令进入目录
有疑问加站长微信联系(非本文作者)

package main
import ( "os/exec" )
func main() { cmd:= exec.Command("cd", "/") cmd.Run() } 这样试着执行cd命令但是不行。问一下如何执行cd命令进入目录
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
`单行代码`
方法1:
func ExcuteShell(commond string) bool { c := commond var cmd *exec.Cmd cmd = exec.Command("cmd.exe", "/c", c) cmd.Stderr = os.Stderr cmd.Stdout = os.Stdout if err := cmd.Run(); err != nil { return false } return true }
方法2:
func stopExecCommand() bool { // 执行的命令cmd和/C是不能少的,命令如遇空格就必须多加一个参数,例如以下 cmd := exec.Command("cmd","/C", "net","stop","Tomcat7","/y") //显示运行的命令 fmt.print(cmd.Args) stdout, err := cmd.StdoutPipe() if err != nil { return false } cmd.Start() reader := bufio.NewReader(stdout) //实时循环读取输出流中的一行内容 for { line, err2 := reader.ReadString('\n') if err2 != nil || io.EOF == err2 { break } } cmd.Wait() return true }
你这个是windows系统的执行方式。我没试过。但是我的代码是在linux上面的是不行的 我看看windows上你的方式可不可以
cd 命令不知道为什么无论是linux还是windows系统就是执行不了
you need
os.Chdir
thank you
func excuteShell(commond string) bool { c := commond var cmd *exec.Cmd if runtime.GOOS != "windows" { cmd = exec.Command("bash", "-c", c) } else { cmd = exec.Command("cmd.exe", "/c", c) } //cmd.Stderr = os.Stderr //cmd.Stdout = os.Stdout if err := cmd.Run(); err != nil { ServerUtils.Log(err) return false } return true }
linux与windows的区别只是调用的command不一样而已
这个知道的但是我只是想执行cd这个命令。有个大神已经说了。用os.Chdir就可以了