以静默模式运行CMD或BAT

如何在静默模式下运行CMD或.bat文件? 我正在寻找防止向用户显示CMD界面。

我在StackOverflow问题中提出了一种在后台运行batch file的方法( 不显示DOS窗口

这应该回答你的问题。

这里是:


从你的第一个脚本中,用以下行调用你的第二个脚本:

wscript.exe invis.vbs run.bat %* 

其实,你正在调用一个vbs脚本:

  • 脚本的[path] \名称
  • 你的脚本需要的所有其他参数( %*

然后,invis.vbs将使用Windows Script Host Run()方法调用您的脚本,该方法需要:

  • intWindowStyle:0意味着“不可见的窗口”
  • bWaitOnReturn:false表示您的第一个脚本不需要等待第二个脚本完成

查看完整的invis.vbs脚本的问题:

 Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run """" & WScript.Arguments(0) & """" & sargs, 0, False ^ means "invisible window" ---| 

Tammen反馈后更新:

如果你在一个DOS会话中,并且想要在后台启动另一个脚本,那么简单的/b (就像上面提到的问题一样 )就足够了:

您可以使用start /b second.bat从第一个共享第一个窗口的第一个asynchronous启动第二个batch file。

包括短语

@echo off

在你的蝙蝠脚本的顶部。

使用高级BAT从http://www.battoexeconverter.com EXE转换器

这将允许您将batch file中的任何其他二进制文件embedded到一个完全无声的EXE及其免费软件中

试试SilentCMD 。 这是一个小的免费程序,执行一个batch file,而不显示命令提示符窗口。

我认为这是运行一个batch file而不打开DOS窗口的最简单和最短的解决scheme,当你想要安排一组定期运行的命令时,这会非常分散注意力,所以DOS窗口不断popup,这里是你的解决scheme。 使用VBS脚本调用batch file…

 Set WshShell = CreateObject("WScript.Shell" ) WshShell.Run chr(34) & "C:\Batch Files\ mycommands.bat" & Chr(34), 0 Set WshShell = Nothing 

将上面的行复制到一个编辑器中,并用.VBS扩展名保存该文件。 相应地编辑.BAT文件名称和path。

如果我想在静默模式下运行命令promt,那么有一个简单的vbs命令:

 Set ws=CreateObject("WScript.Shell") ws.Run "TASKKILL.exe /F /IM iexplore.exe" 

如果我想在cmd中默默地打开一个url ,那么这里是一个代码:

 Set WshShell = WScript.CreateObject("WScript.Shell") Return = WshShell.Run("iexplore.exe http://otaxi.ge/log/index.php", 0) 'wait 10 seconds WScript.sleep 10000 Set ws=CreateObject("WScript.Shell") ws.Run "TASKKILL.exe /F /IM iexplore.exe" 

使用蝙蝠到exe转换器来做到这一点

http://download.cnet.com/Bat-To-Exe-Converter/3000-2069_4-10555897.html
(select直接下载链接

1 – 打开蝙蝠到EXE转换器,select你的蝙蝠文件。
2 – 在选项菜单中select“不可见的应用程序”,然后按编译button。

完成!

我很自信,我喜欢这种方法最好。 将以下代码复制并粘贴到.vbs文件中。 从那里你将调用batch file…所以确保你编辑最后一行来指定batch file的path和名称(它应该包含你想启动的文件或执行你需要执行的操作)

 Const HIDDEN_WINDOW = 12 strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set objStartup = objWMIService.Get("Win32_ProcessStartup") Set objConfig = objStartup.SpawnInstance_ objConfig.ShowWindow = HIDDEN_WINDOW Set objProcess = GetObject("winmgmts:root\cimv2:Win32_Process") errReturn = objProcess.Create("C:\PathOfFile\name.bat", null, objConfig, intProcessID) 

它绝对为我工作。 欢迎评论:)