go如何执行cd命令

cash · 2019-01-10 17:57:31 · 2690 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2019-01-10 17:57:31 的主题,其中的信息可能已经有所发展或是发生改变。

package main

import ( "os/exec" )

func main() { cmd:= exec.Command("cd", "/") cmd.Run() } 这样试着执行cd命令但是不行。问一下如何执行cd命令进入目录


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2690 次点击  
加入收藏 微博
7 回复  |  直到 2019-01-15 13:54:10
lan2018
lan2018 · #1 · 6年之前

方法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 }

cash
cash · #2 · 6年之前

你这个是windows系统的执行方式。我没试过。但是我的代码是在linux上面的是不行的 我看看windows上你的方式可不可以

cash
cash · #3 · 6年之前

cd 命令不知道为什么无论是linux还是windows系统就是执行不了

moryaden
moryaden · #4 · 6年之前

you need os.Chdir

cash
cash · #5 · 6年之前

thank you

lan2018
lan2018 · #6 · 6年之前

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不一样而已

cash
cash · #7 · 6年之前

这个知道的但是我只是想执行cd这个命令。有个大神已经说了。用os.Chdir就可以了

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传