【发布时间】:2018-06-17 09:32:13
【问题描述】:
如何通过exec.Command 执行我的sc 命令?
代码:
cmd := exec.Command("cmd.exe", "sc", "create", "Simpler", "binpath="+os.Getenv("APPDATA")+"\\Simpler\\cc.exe", "displayname=MY SERVICE");
cmd.SysProcAttr = &syscall.SysProcAttr{HideWindow: true};
out, _ := cmd.Output(); fmt.Println(string(out))
这是我在命令提示符中得到的(在当前命令提示符中打开命令提示符-_-):
Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.
C:\WINDOWS\system32>cd c:\prog\logs
c:\prog\logs>go build test.go
c:\prog\logs>test.exe
Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.
c:\prog\logs>
c:\prog\logs>
无法执行以下命令。我什么也得不到!问题出在哪里?
如果我在当前命令提示符下执行sc.exe,则命令已启动,但如果我在新命令提示符下执行则未启动。
也就是说,如果我删除第一个参数 "cmd.exe" 我的程序成功执行,但结果异常。但是如何在新窗口中执行呢?
【问题讨论】: