     }
     Sort, result
 
-    SetCommandFilter("CountNumber")
+    SetCommandFilter("CountNumber|ShowService")
     DisplayResult(FilterResult(AlignText(result), Arg))
     TurnOnResultFilter()
 return
+
+ShowService:
+    result :=
+    ; 暂时只支持一个，选得多了查起来太慢
+    for service in ComObjGet("winmgmts:")
+        .ExecQuery("select * from Win32_Service where Name = '" StrSplit(Arg, " ")[1] "'")
+    {
+        ; https://msdn.microsoft.com/en-us/library/windows/desktop/aa394418%28v=vs.85%29.aspx
+        result .= "* | 服务 | 服务名 | " service.Name "`n"
+        result .= "* | 服务 | 服务描述 | " service.Description "`n"
+        result .= "* | 服务 | 是否在运行 | " service.Started "`n"
+        result .= "* | 服务 | 路径 | " service.PathName "`n"
+        result .= "* | 服务 | 进程 ID | " service.ProcessId "`n"
+        result .= "* | 服务 | 服务类型 | " service.ServiceType "`n"
+        break
+    }
+
+    DisplayResult(AlignText(result))
+return

ListProcess:
    result := ""

    for process in ComObjGet("winmgmts:").ExecQuery("Select * from Win32_Process")
    {
        result .= "* | 进程 | " process.Name " | " process.CommandLine "`n"
    }


ListAllService:
    result :=
    for service in ComObjGet("winmgmts:").ExecQuery("select * from Win32_Service")
    {
        result .= "* | 服务 | " service.Name " | " service.DisplayName "`n"
    }
    Sort, result

    SetCommandFilter("CountNumber|ShowService")
    DisplayResult(FilterResult(AlignText(result), Arg))
    TurnOnResultFilter()
return

ListRunningService:
    result :=
    for service in ComObjGet("winmgmts:").ExecQuery("select * from Win32_Service")
    {
        if (service.Started != 0)
        {
