几种隐藏批处理运行窗口的方法
1个回答
展开全部
通常系统管理员会向用户端推送一些脚本并运行,或者拷贝批处理文件到客户端由用户自己运行。但是大部分脚本在运行时会弹出黑色背景的DOS窗口,这会让不少用户不知所措,甚至误操作关闭正在运行的窗口。好在批处理文件的DOS窗口是可以隐藏的,以下是。1.基础HideRun.vbsCreateObject("WScript.Shell").Run "cmd /c D:\test.bat",0
其中D:\test.bat是你的批处理路径另一思路为把bat转换成vbs,然后vbs生成一个临时bat文件,然后WScript.Shell.Run隐藏启动这个临时bat。HideRun.batecho CreateObject("WScript.Shell").Run "cmd /c D:\test.bat",0>$tmp.vbs
cscript.exe /e:vbscript $tmp.vbs
del $tmp.vbs
这个批处理其实不能使其批处理本身隐藏,但是下面大部分隐藏调用批处理的原理和基础。HideRun.jsnew 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 mysrv4.利用at计划任务用at可以建立一个计划任务,在不输入 /interactive 参数可以后台运行。
其中D:\test.bat是你的批处理路径另一思路为把bat转换成vbs,然后vbs生成一个临时bat文件,然后WScript.Shell.Run隐藏启动这个临时bat。HideRun.batecho CreateObject("WScript.Shell").Run "cmd /c D:\test.bat",0>$tmp.vbs
cscript.exe /e:vbscript $tmp.vbs
del $tmp.vbs
这个批处理其实不能使其批处理本身隐藏,但是下面大部分隐藏调用批处理的原理和基础。HideRun.jsnew 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 mysrv4.利用at计划任务用at可以建立一个计划任务,在不输入 /interactive 参数可以后台运行。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询