问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

用cmd怎么实现隐藏DOS窗口运行程序

发布网友 发布时间:2022-04-23 15:05

我来回答

2个回答

热心网友 时间:2023-09-09 20:34

@echo off 

if "%1"=="h" goto begin 

start mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit 

:begin 

这里写命令

 

方法一:

 

@echo off 
if "%1"=="h" goto begin 
start mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit 
:begin 
::以下为正常批处理命令,不可含有pause set/p等交互命令 

 

如果双击一个批处理,等价于参数为空,而一些应用程序需要参数,比如在cmd窗口输入shutdowm -s -t 0,其中-s -t 0就为参数。shutdown为%0,-s为%1,-t为%2,以此类推。 
第一行我们先跳过,看第二行,表示利用mshta创建一个vbs程序,内容为:createobject("wscript.shell").run(……).如果运行的批处理名为a.bat,在C:\下,那%0代表C:\a.bat,%~nx0代表a.bat。h极为参数%1,0表示隐藏运行。由于你双击运行,故第一次批处理%1为空,if不成立,转而运行下一句。然后再次打开自己,并传递参数h,此时if成立,跳转至begin开始运行。 
这两行很经典,可以使批处理无窗口运行。

 

 

 

方法二:(这个不会生成临时文件(兼容空格路径的):

 

@echo off 
if "%1" == "h" goto begin 
mshta vbscript:createobject("wscript.shell").run("%~fs0 h",0)(window.close)&&exit 
:begin 
rem 下边开始写批处代码了 

 

方法三:

 

将下面任何一句话加在@echo off下面都可以起到隐藏执行的效果,(code标签后就是要隐藏执行的任务) 
两句代码的思路相同,实现手段不同.请细细体味: 

 

if "%1"=="h" (goto code) else (mshta vbscript:createobject^("wscript.shell"^).run^("%~fs0 h",0^)^(window.close^)&exit) 

 

if exist #hide.vbs (del #hide.vbs &goto code) else (echo createobject^("wscript.shell"^).run "%~fs0",0 >#hide.vbs&start 

 

#hide.vbs&exit) 

 

这段代码不会闪提示符出来 
@echo off 
if "%1" == "h" goto begin 
mshta vbscript:createobject("wscript.shell").run("%~nx0 h",0)(window.close)&&exit 
:begin 
rem 下边开始写批处代码了 

 

 

 

方法四:

 

@echo off 
start /min 1.bat 

 

将上面的代码保存为: 2.bat 

 

之后将你的批处理文件保存为 1.bat,运行之前先打开2.bat,则1.bat就最小化运行了. 

 

 

(1)通过批处理命令实现。缺点:会看到一个窗口一闪而逝。优点:简单,直接添加即可。

@echo off
if "%1"=="h" goto begin
start mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin
::以下为正常批处理命令,不可含有pause set/p等交互命令
pause

 

(2)利用vbs脚本实现隐藏。缺点:调用麻烦点。优点:基本看不到痕迹(非绝对的,指一般用户)

HideRun.vbs

CreateObject("WScript.Shell").Run "cmd /c D:/test.bat",0
其中D:/test.bat是你的批处理路径

.....................................................................................................................................

另一思路为把bat转换成vbs,然后vbs生成一个临时bat文件,然后WScript.Shell.Run隐藏启动这个临时bat。


HideRun.bat

echo CreateObject("WScript.Shell").Run "cmd /c D:/test.bat",0>$tmp.vbs
cscript.exe /e:vbscript $tmp.vbs
del $tmp.vbs
这个批处理其实不能使其批处理本身隐藏,但是下面大部分隐藏调用批处理的原理和基础。


HideRun.js

new ActiveXObject('WScript.Shell').Run('cmd /c D:/Test.bat',0);
用JavaScript有什么好处呢?js的字符串变量可以用单引号,从而方便命令行作为参数调用,而且js很好的支持多行语句用 ; 分隔写成一行。要注意的是:js要区分大小写,方法

必须用括号,结尾必须有分号。所以就成了下面的命令:

mshta "javascript:new ActiveXObject('WScript.Shell').Run('cmd /c D:/test.bat',0);window.close()"

 

 

 

       通常系统管理员会向用户端推送一些脚本并运行,或者拷贝批处理文件到客户端由用户自己运行。但是大部分脚本在运行时会弹出黑色背景的DOS窗口,这会让不少用户不知所

措,甚至误操作关闭正在运行的窗口。好在批处理文件的DOS窗口是可以隐藏的,以下是几种隐藏批处理运行窗口的方法。


1.基础

HideRun.vbs

CreateObject("WScript.Shell").Run "cmd /c D:/test.bat",0
其中D:/test.bat是你的批处理路径

另一思路为把bat转换成vbs,然后vbs生成一个临时bat文件,然后WScript.Shell.Run隐藏启动这个临时bat。


HideRun.bat

echo CreateObject("WScript.Shell").Run "cmd /c D:/test.bat",0>$tmp.vbs
cscript.exe /e:vbscript $tmp.vbs
del $tmp.vbs
这个批处理其实不能使其批处理本身隐藏,但是下面大部分隐藏调用批处理的原理和基础。


HideRun.js

new ActiveXObject('WScript.Shell').Run('cmd /c D:/Test.bat',0);
用Javascript有什么好处呢?js的字符串变量可以用单引号,从而方便命令行作为参数调用,而且js很好的支持多行语句用 ; 分隔写成一行。要注意的是:js要区分大小写,方法

必须用括号,结尾必须有分号。所以就成了下面的命令:

mshta "javascript:new ActiveXObject('WScript.Shell').Run('cmd /c D:/test.bat',0);window.close()"

 

2.用快捷方式

如果要使一个批处理本身隐藏,可以参考附件里的一个快捷方式,修改附件中的相关路径即可隐藏启动你的批处理。可以用vbs来建立一个 .lnk,其实用批处理也行(先echo一个

vbs出来)

 

3.利用系统服务

可以建立一个系统服务然后启动这个服务来启动批处理。缺点是启动服务较慢,需要管理员权限

runassrv add /cmdline:"C:/Windows/System32/cmd.exe /c D:/test.bat" /name:"mysrv"
net start mysrv

 

4.利用at计划任务

用at可以建立一个计划任务,在不输入 /interactive 参数可以后台运行。但是建使用at必须有管理员权限

at 09:10 "cmd /c D:/Test.bat"

然后在 9:10 系统就会自动后台以SYSTEM权限运行这个bat

热心网友 时间:2023-09-09 20:34

@echo off if "%1"=="h" goto begin start mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit :begin ::以下为正常批处理命令,不可含有pause set/p等交互命令 

如果双击一个批处理,等价于参数为空,而一些应用程序需要参数,比如在cmd窗口输入shutdowm -s -t 0,其中-s -t 0就为参数。shutdown为%0,-s为%1,-t为%2,以此类推。 第一行我们先跳过,看第二行,表示利用mshta创建一个vbs程序,内容为:createobject("wscript.shell").run(……).如果运行的批处理名为a.bat,在C:\下,那%0代表C:\a.bat,%~nx0代表a.bat。h极为参数%1,0表示隐藏运行。由于你双击运行,故第一次批处理%1为空,if不成立,转而运行下一句。然后再次打开自己,并传递参数h,此时if成立,跳转至begin开始运行。 这两行很经典,可以使批处理无窗口运行。

命令提示符是在操作系统中,提示进行命令输入的一种工作提示符。在不同的操作系统环境下,命令提示符各不相同。

在windows环境下,命令行程序为cmd.exe,是一个32位的命令行程序,微软Windows系统基于Windows上的命令解释程序,类似于微软的DOS操作系统。输入一些命令,cmd.exe可以执行,比如输入shutdown -s就会在30秒后关机。总之,它非常有用。打开方法:开始-所有程序-附件 或 开始-寻找-输入:cmd/cmd.exe 回车。它也可以执行BAT文件。

一般说的“命令行”是指linux命令,linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是*处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。linux命令在系统中有两种类型:内置Shell(外壳)命令和Linux命令。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
蛋上有疙瘩怎么回事 姻缘测试:属虎和属兔的合不合 婚姻怎么样 电脑能上网手机连上wifi不能上网? 为什么手机连上电脑WIFI却上不了网呢 win7开机黑屏安全模式正常是怎么回事 win7开机黑屏安全模式正常问题解 ... 电脑开机安全模式能进电脑可以进安全模式但正常系统为什么进不去 ...进笔记本电脑安全模式能开机但是正常模式开机黑屏 电脑开机黑屏但安全模式能进去电脑开机一启动系统就黑屏进安全系统正常... 12月份女生面试应该穿什么? 我想去哈尔滨玩几天,大概在十二月中旬,穿什么才不会被冻着?大概需要多... 在windows下怎么隐藏运行时的命令行窗口 运行bat时怎么隐藏cmd窗口啊 和路雪的产品系列 无花果的花由什么发育而成 关于集体活动的作文10字 无花果生长过程是怎样的? 梦龙雪糕 哪个国家产的? 无花果长什么样图片 三年级作文漂亮的队伍 无花果花的性状有哪些? 名叫无花果,那实际上,无花果到底有没有“花”呢? 世界上最好吃的6种饼干排行榜!奥利奥上榜,有没有你喜欢的哪款呢?_百... 无花果的花藏在什么结构里了? 无花果的花长在果实的内部还是外部 无花果的花到底有多小? 芒果慕斯怎么做? 比利时风味饼干一个有多少克 小时候吃的那种酥的长方形的饼干是什么牌子的什么饼干? 芒果慕斯家常做法,正宗芒果慕斯怎么做 无花果的花为什么长在里面 如何隐藏cmd命令弹出的窗口啊 C++中如何隐藏运行的CMD窗口? 如何在运行批处理时隐藏cmd窗口 C++如何调用CMD并隐藏CMD窗口? 隐藏CMD窗口或后台运行 怎么让BAT隐藏执行,不显示CMD窗口? 如何隐藏cmd窗口 mfc 批处理运行程序后隐藏cmd窗口 如何隐藏winrar自解压文件的解压过程cmd窗口 C语言编写的程序,怎样隐藏运行,不弹CMD窗口 用delphi写的控制台程序,如何使他运行时隐藏cmd窗口 怎么让BAT隐藏执行?不显示CMD窗口 vs2015生成解决方案怎么隐藏cmd窗口 如何用CMD命令彻底隐藏文件和文件夹? 怎样在vb中调用bat语句,并且隐藏cmd窗口 华为手机呼吸灯在哪里可以关 华为耳机孔旁边的呼吸灯关不了吗? 华为P8呼吸灯开关在哪 华为荣耀8 呼吸灯可以关掉的吗 华为mate8呼吸灯设置