代码如下:
@echo oFF
::code by LZ-MyST QQ:8450919 BLOG:http://hi.baidu.com/lzmyst http://www.clxp.net.cn
if "%1" neq "1" (
>"%temp%/tmp.vbs" echo set WshShell = WScript.CreateObject^(^"WScript.Shell^"^)
>>"%temp%/tmp.vbs" echo WshShell.Run chr^(34^) ^& %0 ^& chr^(34^) ^& ^" 1^",0
start /d "%temp%" tmp.vbs
exit
)
::从这里开始,就是你的批处理代码了,DOS黑框一闪而过,转到后台运行了
pause
::你会在任务管理器看到有一个隐藏窗口的CMD进程
运行bat时隐藏cmd窗口的方法
运行bat时隐藏cmd窗口的方法 可以编辑一个vbs脚本,在其中以隐藏窗口运行批处理程序。
代码如下:
Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c 批处理程序名",vbhide
将上面代码拷贝到记事本中,保存为"runbat.vbs"或者其它的名字(扩展名必须是.vbs),然后点击运行生成的脚本runbat.vbs,即可隐藏运行指定的批处理程序。
这个vbs脚本也可以在bat环境中直接调用,达到隐藏bat自身的目的。
自己总结一下,做几个例子,有兴趣的去试验一下啊!
代码如下:
Set ws = CreateObject("Wscript.Shell")
wscript.sleep 1200 ws.run "cmd /c start winrar.exe",vbhide
wscript.sleep 2200 ws.run "cmd /c start msimn.exe",vbhide
wscript.sleep 1200 ws.run "cmd /c start iexplore.exe",vbhide
下面来几个高手整理的
几种隐藏批处理运行窗口的方法 .
(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要区分大小写,方法
新闻热点
疑难解答