分享

cmd静默运行_关于脚本:以静默模式运行CMD或BAT

 金刚光 2023-02-04 发布于辽宁

cmd静默运行_关于脚本:以静默模式运行CMD或BAT

weixin_40009026

于 2020-12-22 20:59:40 发布

4232

 收藏 1

文章标签: cmd静默运行

版权

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

包括短语

@echo off

在您的蝙蝠脚本的顶部。

感谢您的编辑moocha。

对其进行了一些改进(格式化,在前面添加了@,以便echo语句本身不会导致输出。)但是,这不会阻止调用的命令的输出。调用时将输出重定向到> NUL 2> NUL即可。

嘿,欢迎光临。交叉评论:)

我知道我知道,谢谢

我在StackOverflow问题中提出了一种在后台运行批处理文件的方法(不显示DOS窗口)

那应该回答你的问题。

这里是:

在第一个脚本中,使用以下行调用第二个脚本:

wscript.exe invis.vbs run.bat %*

实际上,您正在使用以下命令调用vbs脚本:

脚本的[路径] 名称

脚本所需的所有其他自变量(%*)

然后,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(如上述相同问题中所述)就足够了:

You can use start /b second.bat to launch a second batch file asynchronously from your first that shares your first one's window.

可以仅使用DOS命令来完成?

@calvin:此答案的第二部分仅显示DOS命令。根据您的上下文,您可以使用DOS命令以静默方式运行脚本(也由stackoverflow.com/questions/298562中的答案进行了详细介绍)

@Shf谢谢您的编辑。

@VonC谢谢您的出色回答,并为我避免了其他调查工作:D

从http://www.使用高级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文件名和路径。

完美..像魅力一样工作

简单。完美运作。由于我的批处理文件只是从一个命令开始,因此我完全可以将其删除,然后将命令放在VBS中。谢谢。

一切正常,谢谢兄弟

使用Bat To Exe Converter来执行此操作

http://download./Bat-To-Exe-Converter/3000-2069_4-10555897.html(选择直接下载链接)

1-打开Bat to Exe Converter,选择您的Bat文件。

2-在"选项"菜单中选择"不可见的应用程序",然后按编译按钮。

做完了!

尝试使用SilentCMD。这是一个小的免费软件程序,它执行批处理文件而不显示命令提示符窗口。

如果我想在静默模式下运行命令promt,那么有一个简单的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:///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 &"

oot\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

ame.bat", null, objConfig, intProcessID)

绝对对我有用。欢迎评论:)

真的很好!

另一种方法,没有第三方程序或转换器("批处理到exe"程序,实际上只是将批处理文件放在tmp文件夹中,然后以静默方式运行,因此任何人都可以从那里获取它并获取代码)没有vbs文件(因为没人知道vbs)批处理文件开头仅一行。

@echo off > NUL

我创建了RunApp来完成这项工作,并在我的生产环境中使用了它,希望对您有所帮助。

如下配置:

文件:config.arg

:style:hidden

MyBatchFile.bat

arg1

arg2

然后启动runapp.exe。

————————————————

版权声明:本文为CSDN博主「weixin_40009026」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/weixin_40009026/article/details/111864577

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多