如何在不打开窗口的情况下调用CMD

我有一个C ++方法(使用Visual Studio,如果有帮助的话)调用这样的cmd

start \B example.exe arg1 arg2 arg3 

问题是这个调用打开一个(cmd)窗口。 如果我打开另一个cmd,\ B工作,但是如果没有,它会打开一个新窗口。

我也尝试没有开始\ B,但它是一样的….

我想避开这个新窗口,但我不知道如何。 任何想法?

我不知道如何在C ++中做到这一点,但打开一个新的命令提示符窗口,也是使用批处理文件最小化(或“隐藏”)我将使用:

 start /min cmd 

或者,如果您启动命令提示符,则可以键入:

 @echo off cls && start /b cmd 

这会重新启动当前的命令提示符窗口而不关闭它,但是所有以前设置的环境变量都将被重置。 希望这可以帮助!

(PS。这已经过测试,并在Windows 7 Ultimate OS上成功)

您可以使用“/ C”开关

 cmd.exe /c dir/b 

这将运行“dir / b”命令并退出 – 将不显示任何窗口,但如果您要设置ECHO,请使用“/ q”开关

 cmd.exe /c/q dir 

尝试ShellExecuteEx ,设置nShow = SW_HIDE。

如何使用WSH而不是CMD提示?

您可以使用.Run,​​0来隐藏窗口,如下所示:

 Set objShell = WScript.CreateObject("WScript.Shell") isHidden = 0 'change 0 to 1 to show the CMD prompt objShell.Run "%comspec% /c myfile.bat", isHidden 

只需要不需要启动即可:

 example.exe arg1 arg2 arg3