利用go写个Windows简单进程管理工具

Windows环境下做开发的时候经常需要批量结束进程,比如java.exe ,于是写了这个小工具,输入模糊的进程名,自动批量结束进程

 1 package main
 2 
 3 import (
 4     "fmt"
 5     "log"
 6     "os/exec"
 7 )
 8 
 9 func main() {
10     var inputStr string
11     for {
12         fmt.Println("---------------------------------------------------")
13         fmt.Print("1->退出  ")
14         fmt.Print("2->显示进程  ")
15         fmt.Print("3->结束进程  ")
16         fmt.Println("4->显示全部进程")
17         fmt.Println("---------------------------------------------------")
18         fmt.Scanln(&inputStr)
19         if inputStr == "1" {
20             fmt.Println("已退出...")
21             break
22         } else if inputStr == "2" {
23             fmt.Print("请输入进程名称:")
24             var processName string
25             fmt.Scanln(&processName)
26             if len(processName) == 0 {
27                 fmt.Println("进程名称不可为空!")
28             } else {
29                 text := "imagename eq " + processName + "*"
30                 listProcess(text)
31             }
32         } else if inputStr == "3" {
33             fmt.Print("请输入要结束的进程名称:")
34             var processName string
35             fmt.Scanln(&processName)
36             if len(processName) == 0 {
37                 fmt.Println("进程名称不可为空!")
38             } else {
39                 text := "imagename eq " + processName + "*"
40                 killProcess(text)
41             }
42         } else if inputStr == "4" {
43             listAllProcess()
44         } else {
45         fmt.Println("请输入正确的参数!")
46         }
47     }
48     fmt.Scanln(&inputStr)
49 }
50 
51 func listProcess(text string) {
52     cmd := exec.Command("tasklist", "/fi", text)
53     out, err := cmd.CombinedOutput()
54     if err != nil {
55         log.Fatal(err)
56     }
57     fmt.Println(string(out))
58 }
59 func listAllProcess() {
60     cmd := exec.Command("tasklist")
61     out, err := cmd.CombinedOutput()
62     if err != nil {
63         log.Fatal(err)
64     }
65     fmt.Println(string(out))
66 }
67 
68 func killProcess(text string) {
69     cmd := exec.Command("taskkill", "/f", "/t", "/fi", text)
70     out, err := cmd.CombinedOutput()
71     if err != nil {
72         log.Fatal(err)
73     }
74     fmt.Println(string(out))
75 }
View Code

 

posted @ 2019-01-28 15:48  林台山人  阅读(1128)  评论(0编辑  收藏  举报