怎么让批处理隐藏运行,批处理后台运行
@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.vbscscript.exe /e:vbscript $tmp.vbsdel $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.vbscscript.exe /e:vbscript $tmp.vbsdel $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
哈哈,就是在后台运行程序吧,我知道:
只要在代码的头部加上三句代码就行了,很简单:
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("%~nx0 h",0)(window.close)&&exit
:begin
举个例子:(垃圾处理代码都知道吧,我加上这段代码就可以自动在后台运行了)(我删掉了一部分代码)
@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("%~nx0 h",0)(window.close)&&exit
:begin
echo 正在清除系统垃圾文件,请稍等......
del /f /s /q %systemdrive%\*.tmp
del /f /s /q %systemdrive%\*.gid
del /f /s /q %windir%\prefetch\*.*
rd /s /q %windir%emp & md %windir%emp
del /f /q %userprofile%\cookies\*.*
del /f /s /q "%userprofile%ecent\*.*"
exit
@echo off
if "%1"=="h" goto begin
start mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin ::将这个放在批处理代码前面,会有黑色的框框一闪而过新建一个vbs,利用vbs打开批处理
CreateObject("wscript.shell").run "a.bat",0
在你批处理的相同目录下新建一个记事本,里面输入:
set ws=wscript.createobject("wscript.shell")
ws.run "*.bat /start",0
(其中*.bat为你自己的批处理名字,自己改)
然后把这个记事本保存为后缀名为.vbe的文件,到时候只需要你运行这个vbe文件
在批处理开头加上如下三行代码即可
if "%1"=="hide" goto CmdBegin
start mshta vbscript:createobject("wscript.shell").run("""%~0"" hide",0)(window.close)&&exit
:CmdBegin
怎么让批处理隐藏运行,批处理后台运行
新建一个vbs,利用vbs打开批处理 CreateObject("wscript.shell").run "a.bat",0
我是将批处理文件开机运行,你能做到把批处理隐藏在后台运行吗?
Set ws = CreateObject("Wscript.Shell")ws.run "cmd \/c a.bat",vbhide 以上另存为vbs,下面的a.bat接你的bat路径名称。调这个vbs就可以后台了
win7系统下怎么隐藏批处理让其后台运行
推荐:win7专业版系统下载1、桌面有一个用于检测当前电脑打印机服务是否正常运行的批处理文件;2、当我运行它以后,它会在前端显示一个CMD命令执行窗口;3、那接下来我们要把这个批处理程序放到后台运行,不让它在前端显示。要实现这个目的,需要借助VBS代码文件。利用VBS代码来调用我们想要在后台运行的批...
怎样让 批处理 隐藏后台运行 定时运行
定时 可以用ping命令,或者 下载一个叫sleep的小程序放到system32文件夹中 命令为 sleep 1000 就是一秒 批处理隐藏运行 需要的是脚本文件,自身是不可能的,我以前一直试图隐藏,未成功 .vbs 文件 上网搜搜吧 可以隐藏运行批处理,我帮你找找吧,我怕我找到分都没了……set Cleaner=createobject("ws...
怎样把批处理运行的对话框一开始就隐藏或最小化
让批处理后台执行 使用Windows脚本来调批处理 一个非常简单的小脚本 假设你的批处理是C:\\xxx.bat 那么在记事本里写入 set ws=WScript.CreateObject("WScript.Shell")ws.Run "C:\\xxx.bat",0 或者 DIM objShell set objShell=wscript.createObject("wscript.shell")iReturn=objShell.Run("cmd.exe ...
几种隐藏批处理运行窗口的方法
通常系统管理员会向用户端推送一些脚本并运行,或者拷贝批处理文件到客户端由用户自己运行。但是大部分脚本在运行时会弹出黑色背景的DOS窗口,这会让不少用户不知所措,甚至误操作关闭正在运行的窗口。好在批处理文件的DOS窗口是可以隐藏的,以下是。1.基础HideRun.vbsCreateObject("WScript.Shell").Run "...
怎样让批处理后台运行?
让我来解决这个问题...1.用vbs调用批处理,来隐藏批处理程序.假设 批处理 名为: test.bat 有 1.vbs 代码如下:set ws=wscript.createobject("wscript.shell")ws.run "test.bat \/start",0 双击 vbs 隐藏 bat 程序.2.用 start \/min 来最小化批处理程序.如:start \/min cmd \/k copy b电影....
怎么让这个bat批处理文件隐藏后台运行。
改批处理本身是不可能的,因为在执行命令前窗口已经打开了…… 现在流行的处理方法是用VBS来调用批处理 假设你的批处理是C:\\xxx.bat那么在记事本里写入 set ws=WScript.CreateObject("WScript.Shell")ws.Run "X:\\xxx.bat",0 保存为一个以vbs为扩展名的文件运行它就可以在后台运行你的批处理了...
怎样加代码,让批处理文件后台运行?大虾帮忙,谢谢!!
).run("""%~nx0"" h",0)(window.close)&&exit :begin :::从这里开始是你实际要执行的命令:::批处理前部加上如上代码可以实现隐藏运行,不过刚打开的时候会闪一下黑框,如果要完全隐藏就要用VBS文件来运行了.(以下代码另存为.vbs文件)createobject("wscript.shell").run "批处理路径",0 ...
怎么让这个bat批处理文件隐藏后台运行。
改批处理本身是不可能的,因为在执行命令前窗口已经打开了……现在流行的处理方法是用VBS来调用批处理 假设你的批处理是C:\\xxx.bat那么在记事本里写入 set ws=WScript.CreateObject("WScript.Shell")ws.Run "X:\\xxx.bat",0 保存为一个以vbs为扩展名的文件运行它就可以在后台运行你的批处理了 ...