go cmd 交互 初始化执行某些命令

package main

import (
	"fmt"
	"github.com/axgle/mahonia"
	"os"
	"os/exec"
	"syscall"
)

func main() {
	err:=os.Chdir("D:\Desktop")
	if err != nil {
		panic(err)
	}
	cmd := exec.Command("cmd", "/K", "set all_proxy=socks5://127.0.0.1:1080")
	cmd.SysProcAttr = &syscall.SysProcAttr{HideWindow: true}
	cmd.Stdin = os.Stdin
	stdoutPipe, err := cmd.StdoutPipe()
	if err != nil {
		panic(err)
	}

	err = cmd.Start()
	if err != nil {
		panic(err)
	}

	decoder := mahonia.NewDecoder("gbk").NewReader(stdoutPipe)
	buf:=make([]byte, 1024)
	for{
		n,err:=decoder.Read(buf)
		if err != nil {
			panic(err)
		}
		fmt.Printf("%s", buf[:n])
	}
}

  编译出的exe实现了每次打开设置代理,工作目录切换至桌面,cls,tab补全等功能无法使用,打开的算是一个中间层吧,后续随缘。

  标题不知道起啥,就当备份代码吧

原文地址:https://www.cnblogs.com/ligaofeng/p/13658075.html