開發(fā)環(huán)境:Windows
GO 版本: 1.5.3 (其實跟 go 版本沒啥關(guān)系…)
想要實現(xiàn)的功能:
類似 cmd.exe set 功能
例如:
set xxx_path=xxxx
set path=%xxx_path%;%path%
如果以上代碼是 session.bat 的話评腺,執(zhí)行 bat 即可,在當前 cmd 環(huán)境下荡碾,xxx_path 就有值了碧库。關(guān)閉當前 cmd暮的,xxx_path 的值自然就沒有了茸习。
現(xiàn)在的問題:
使用 exec.Command("cmd.exe", "/c", "session.bat").Output() 后群叶,可以正常調(diào)用活烙,但執(zhí)行后就退出了碉纺。(相當于 session 已經(jīng)關(guān)閉了)
暫時能想到的辦法:
使用 exec.Command("cmd.exe", "/c", "start " + "session.bat").Output()船万,但是這樣會新打開一個 cmd.exe 不是很友好刻撒。
請問各位,有沒有什么好的解決辦法耿导?
package main
import (
"fmt"
"os"
"os/exec"
)
func main() {
cmd := exec.Command("cmd.exe")
cmd.Stdout = os.Stdout
input, _ := cmd.StdinPipe()
cmd.Start()
fmt.Fprintln(input, "set GOOS=linux")
fmt.Fprintln(input, "set GOOS")
fmt.Fprintln(input, "exit")
cmd.Wait()
}
轉(zhuǎn)發(fā)自: