题
如何以静默模式运行 CMD 或 .bat 文件?我希望阻止向用户显示 CMD 界面。
解决方案
我在 StackOverflow 问题中提出了一种方法 在后台运行批处理文件(没有显示 DOS 窗口)
这应该可以回答你的问题。
这里是:
从第一个脚本中,使用以下行调用第二个脚本:
wscript.exe invis.vbs run.bat %*
实际上,您正在使用以下命令调用 vbs 脚本:
- 脚本的[路径]\名称
- 您的脚本所需的所有其他参数(
%*
)
然后,invis.vbs 将使用以下命令调用您的脚本 Windows 脚本宿主 Run() 方法, ,这需要:
- intWindowStyle :0 表示“隐形窗户”
- b等待返回: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
从共享第一个窗口的第一个批处理文件异步启动第二个批处理文件。
其他提示
加入短语
@echo off
就在你的蝙蝠脚本的顶部。
从 http://www.battoexeconverter.com 使用高级BAT到EXE转换器
这将允许您将批处理文件中的任何其他二进制文件嵌入到一个独立的完全静默的EXE及其免费软件中
我认为这是在不打开DOS窗口的情况下运行批处理文件的最简单,最简单的解决方案,当您想要安排一组定期运行的命令时,它会非常分散注意力,因此DOS窗口会不断弹出,这里是你的解决方案。 使用VBS脚本调用批处理文件...
Set WshShell = CreateObject("WScript.Shell" )
WshShell.Run chr(34) & "C:\Batch Files\ mycommands.bat" & Chr(34), 0
Set WshShell = Nothing
将上面的行复制到编辑器并保存扩展名为.VBS的文件。相应地编辑.BAT文件名和路径。
使用Bat To Exe Converter执行此操作
http://download.cnet.com/ Bat-To-Exe-Converter / 3000-2069_4-10555897.html
(选择直接下载链接)
1 - 打开Bat to Exe Converter,选择你的Bat文件。
2 - 在Option菜单中选择“Invisible Application”,然后按编译按钮。结果
完成!
尝试 SilentCMD 。这是一个小型免费软件程序,它执行批处理文件而不显示命令提示符窗口。
如果我想在静默模式下运行命令提示符,那么有一个简单的vbs命令:
Set ws=CreateObject("WScript.Shell")
ws.Run "TASKKILL.exe /F /IM iexplore.exe"
如果我想以静默方式在cmd中打开网址,那么这是一段代码:
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"
我非常有信心我最喜欢这种方法。将下面的代码复制并粘贴到.vbs文件中。从那里你将调用批处理文件...所以请确保编辑最后一行以指定批处理文件的路径和名称(应该包含您要启动的文件或执行您需要执行的操作)
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)
这绝对对我有用。欢迎评论:)
我创建了 RunApp 来完成这样的工作,并在我的生产环境中使用它,希望它有所帮助。
如下配置:
file:config.arg
:style:hidden
MyBatchFile.bat
arg1
arg2
然后启动 runapp.exe
。