以静默模式运行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)
它绝对为我工作。 欢迎评论:)