golang操作cmd命令
以下是来自golang社区的一些关于windows下cmd命令操作的示例:
1 、关机、重启
1// 关闭计算机
2func ShutDownEXE() {
3 fmt.Println("关闭主机")
4 arg := []string{"-s", "-t", "20"}
5 cmd := exec.Command("shutdown", arg...)
6 d, err := cmd.CombinedOutput()
7 if err != nil {
8 fmt.Println("Error:", err)
9 return
10 }
11 fmt.Println(string(d))
12 return
13}
14// 重启计算机
15func ReShutDownEXE() {
16 fmt.Println("重启主机")
17 arg := []string{"-r", "-t", "20"}
18 cmd := exec.Command("shutdown", arg...)
19 d, err := cmd.CombinedOutput()
20 if err != nil {
21 fmt.Println("Error:", err)
22 return
23 }
24 fmt.Println(string(d))
25 return
26}
2 、根据进程名字kill进程
1// kill调进程 参数---taskkill /im notepad.exe /T /F
2// 参数说明:strGameName为需要kill的进程的名字
3func KillEXE(strGameName string) bool {
4 fmt.Println("kill调进程游戏:", strGameName)
5 strGameName = strGameName + ".exe"
6 arg := []string{"/im", strGameName}
7 cmd := exec.Command("taskkill", arg...)
8 if err := cmd.Run(); err != nil {
9 fmt.Println("Error: ", err)
10 }
11 return true
12}
3、操作注册表,实现程序开机启动
1//假如你要运行的程序名字为:"autorun.exe"使用命令为
2//"reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v AUTORUN /t REG_SZ /d C:\autorun.exe /f"
3//(不包括引号)其中"C:\autorun.exe"为目标程序的路径.按着这样的命令就可以将你的程序添加到启动项中了
4// RunEXE 参数---reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v AUTORUN /t REG_SZ /d C:\autorun.exe /f
5func RunEXE() {
6 fmt.Println("开机启动")
7 strEXEName = "C:\\Windows\\System32\\auto.vbs" // 需要启动文件的路径文件
8 arg := []string{"add", "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", "/v", "auto", "/t", "REG_SZ", "/d", strEXEName, "/f"}
9 cmd := exec.Command("reg", arg...)
10 d, err := cmd.CombinedOutput()
11 if err != nil {
12 fmt.Println("Error:", err)
13 return
14 }
15 fmt.Println(string(d))
16 return
17}
4 、实现启动执行程序隐藏进程
1// 隐藏调进程 参数---start /b notepad.exe
2func YinCangEXE(strEXEName string) {
3 fmt.Println("隐藏进程")
4 cmd := exec.Command("auto.bat")
5 d, err := cmd.CombinedOutput()
6 if err != nil {
7 fmt.Println("Error:", err)
8 return
9 }
10 fmt.Println(string(d))
11 return
12}
5、启动执行文件
1// 启动exe
2// 参数 strGameName 启动的执行文件的名字;strIPandPort 传递给exe的参数
3func CallEXE(strGameName string, strIPandPort string) {
4 fmt.Println("CallEXE 开始启动游戏")
5 arg := []string{strGameName, strIPandPort}
6 fmt.Println("------------", arg)
7 strPath := getCurrentPath()
8 strPath = strPath + "\\TSTX\\" + strGameName // 路径
9 cmd := exec.Command(strPath, arg...)
10 if err := cmd.Run(); err != nil {
11 fmt.Println("Error: ", err)
12 return
13 }
14 return
15}
16// 获取当前目录
17func getCurrentPath() string {
18 s, _ := exec.LookPath(os.Args[0])
19 i := strings.LastIndex(s, "\\")
20 path := string(s[0 : i+1])
21 PathData = path
22 return path
23}
捐赠本站(Donate)
如您感觉文章有用,可扫码捐赠本站!(If the article useful, you can scan the QR code to donate))
- Author: shisekong
- Link: https://blog.361way.com/golang-cmd/6110.html
- License: This work is under a 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. Kindly fulfill the requirements of the aforementioned License when adapting or creating a derivative of this work.