批处理隐藏自身窗口,很无聊_DOS/BAT

复制代码 代码如下:

@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要区分大小写,方法
必须用括号,结尾必须有分号。所以就成了下面的命令:

复制代码 代码如下:

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

5.利用ftype文件关联
ftype batfile=C:/Windows/System32/mshta "javascript:new ActiveXObject('WScript.Shell').Run('cmd /c%1',0);window.close();"
6.其他用户
Windows 2k/XP支持多用户,如果能在后台登陆另一个账户的桌面然后运行一个批处理,就能完全达到隐藏的目的
7.编译成可执行文件
不少方法可以实现,可以直接利用的工具有 Quick Batch file compiler。

时间: 2024-09-08 06:29:23

批处理隐藏自身窗口,很无聊_DOS/BAT的相关文章

Windows运行bat批处理文件时隐藏cmd命令提示符窗口的方法_DOS/BAT

我们在Windows中运行bat批处理文件时往往会弹出一个cmd命令提示符窗口,然后等一会儿cmd窗口就自动关闭了,有人会说,直接在bat批处理文件中加入echo off命令么好了,没错,echo off确实可以关闭cmd窗口,但是cmd窗口最初还是会弹出一下再消失,下面就教大家运行bat批处理文件时如何彻底隐藏cmd命令提示符窗口的方法. 方法就是通过vbs脚本来彻底隐藏执行bat批处理文件,将以下代码保存为.vbs文件,然后直接执行这个.vbs文件即可彻底隐藏cmd窗口了: Set ws =

常用批处理内部命令使用详解_DOS/BAT

批处理定义:顾名思义,批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT或者CMD.这些命令统称批处理命令. 小知识:可以在键盘上按下Ctrl+C组合键来强行终止一个批处理的执行过程. 了解了大概意思后,我们正式开始学习.先看一个简单的例子! @echo off echo "欢迎来到非常BAT!" pause 把上面的3条命令保存为文件test.bat或者test.cmd然后执行, 他就会在屏幕上显示以下二行话: 欢迎来到非常BAT! 请按任意键继续. .

SQL SERVER服务使用批处理启动/停止的方法(sc)_DOS/BAT

那么就让sql server等一些非windows必要服务开机不启动,等用的时候再用批处理启动即可: 首先将"控制面板->管理工具->服务"里面的SQL SERVER相关的服务启动类型设置为手动(SQL Server开头的服务),然后新建立一个文本文档,把后缀名改为"bat".下面就添加批处理命令: 1. 启动SQL SERVER.bat 复制代码 代码如下: @echo.服务启动...... @echo off @sc start MSSQLSERVE

使用BAT批处理执行sql语句的代码_DOS/BAT

1.把待执行Sql保存在一个文件,这里为20110224.sql.2.新建一个扩展名.bat的批处理文件,输入下面命令并保存后,双击.bat文件,系统会自动执行20110224.sql的语句: 复制代码 代码如下: osql -S gdjlc -d TestDB -U sa -P 1 -i 20110224.sql osql参数见下面=======================================================================: E:\>osql

用批处理实现auto.exe的免疫功能_DOS/BAT

用批处理实现auto.exe的免疫功能昨天下午开始系统就有点不正常,估计是中了广告插件了,用360安全卫士运行后立刻关闭, 使用恶意软件清理助手也清理不完全,进入安全模式下清理,清理完毕后重启电脑后依然如故. 使用winpe模式进去,查看几个盘符,发现每个目录下都有auto.exe,无法编辑,是32位可执行文件, 删除,重启电脑恢复正常. 先是autorun.inf,导致网上到处都是autorun.inf的免疫程序,现在竟然又出了auto.exe 佩服啊, 手工设置auto免疫 第一:开始运行中

xcopy 实现批处理拷贝文件或文件夹_DOS/BAT

xcopy 是一个很有用的doc命令,应该学习学习! 可以用xcopy实现,例如: C:\>xcopy C:\ppt\*.* D:\ppt\ /s /e 这条命令的意思就是把C盘下的PPT文件夹全部拷贝到D盘 XCOPY 还有众多的功能, 是加参数来完成的.上面的/s /e 参数的作用分别是把子目录和空目录都复制过去, 一些使用举例和参数说明如下: 1.如只是单纯地复制 E:\ 盘上所有文件到 D:\ 盘上,就输入" xcopy e:\*.* d: /s /h "就行啦!如果在复

收藏的比较完整的批处理教程第1/2页_DOS/BAT

一.批处理内部命令简介  1.Echo 命令  打开回显或关闭请求回显功能,或显示消息.如果没有任何参数,echo 命令将显示当前回显设置.  语法  echo [{on|off}] [message]  Sample:@echo off / echo hello world  在实际应用中我们会把这条命令和重定向符号(也称为管道符号,一般用> >> ^)结合来实现输入一些命令到特定格式的文件中.这将在以后的例子中体现出来.  2.@ 命令  表示不显示@后面的命令,在入侵过程中(例如使

用批处理设置IP安全策略的代码_DOS/BAT

以下内容只有回复后才可以浏览 ipseccmd -w REG -p "XIAOWANG" -r "Block ICMP" -f *+0:ICMP -n BLOCK -x 开网上邻居.bat 复制代码 代码如下: ipseccmd -w REG -p "XIAOWANG" -r "Block TCP/80" -f *+0:80:TCP -n PASS -x ipseccmd -w REG -p "XIAOWANG&qu

让批处理被wsh解析的代码_DOS/BAT

示例批处理:test.bat  复制代码 代码如下: :On Error Resume Next   Sub bat   echo off & cls   echo Batching_codez_here_following_vbs_rules & pause   start wscript -e:vbs "%~f0"   Exit Sub   End Sub   MsgBox "This is vbs"    上面的代码巧妙利用 bat 和 vbs