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

代码如下:

@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。

(0)

相关推荐

  • 利用WScript.Shell对象隐藏cmd命令行运行框的实现代码

    1. WScript.Shell(Windows Script Host Runtime Library)是一个对象,对应的文件是C:\WINDOWS\system32\wshom.ocx,Wscript.shell是服务器系统会用到的一种组件.shell 就是"壳"的意思,这个对象可以执行操作系统外壳常用的操作,比如运行程序.读写注册表.环境变量等.这个对象通常被用在VB或VBS编程中. 2. 安装WScript.Shell对象:regsvr32 WShom.Ocx 卸载WScrip

  • 运行bat时隐藏cmd窗口的方法(bat隐藏窗口 隐藏运行bat文件)

    这里我们简单的整理下常用方法,方便大家使用.都是通过vbscript的代码.运行bat时隐藏cmd窗口的方法 可以编辑一个vbs脚本,在其中以隐藏窗口运行批处理程序. 复制代码 代码如下: Set ws = CreateObject("Wscript.Shell") ws.run "cmd /c 批处理程序名",vbhide 将上面代码拷贝到记事本中,保存为"runbat.vbs"或者其它的名字(扩展名必须是.vbs),然后点击运行生成的脚本ru

  • 批处理隐藏自身窗口,很无聊

    复制代码 代码如下: @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^"^) >>&

  • C#隐藏主窗口的方法小结

    本文实例总结了C#隐藏主窗口的方法.分享给大家供大家参考,具体如下: 要求在程序启动的时候主窗口隐藏,只在系统托盘里显示一个图标.一直以来采用的方法都是设置窗口的ShowInTaskBar=false, WindowState=Minimized.但是偶然发现尽管这样的方法可以使主窗口隐藏不见,但是在用Alt+Tab的时候却可以看见这个程序的图标并把这个窗口显示出来.因此这种方法其实并不能满足要求. 方法一: 重写setVisibleCore方法 protected override void

  • python3 实现在运行的时候隐藏命令窗口

    将后缀.py改成.pyw 改完后,文件属性里面可以看到:Python File (no console) (.pyw) 显示no console,在运行的时候就不会弹出命令窗口了. 补充:python 打包exe文件并隐藏执行CMD命令窗口 虚拟环境安装 pyinstaller pip install pyinstaller 打包exe命令:(具体的命令网上资料很多) # 打包1个py文件,并隐藏执行窗口 pyinstaller -F -w main.py # 打包1个py文件(-F),并隐藏执

  • 批处理之新窗口执行命令的脚本

    用bat脚本打开新窗口输出hello world: start "" cmd /k "echo hello world" ""表示新窗口没标题或者标题为空 /k表示执行完命令不关闭新窗口,/c表示执行完关闭窗口 1.用bat脚本打开一个新窗口,标题为tom,输出hello,两秒后输出world timeout /t 2倒计时两秒,也有人喜欢用ping,(ping 127.1 –n 2 >nul) 输出多个命令之间需要用&&符

  • 学会批处理,用心学很容易!另一不错的见解第1/3页

    这是一篇技术教程,真心诚意会用很简单的文字表达清楚自己的意思,只要你识字就能看懂,就能学到知识.写这篇教程的目的,是让每一个看过这些文字的朋友记住一句话:如果爱可以让事情变的更简单,那么就让它简单吧!看这篇教程的方法,就是慢!慢慢的,如同品一个女人.一杯茗茶,你会发现很多以前就在眼前的东西突然变的很遥远,而有些很遥远的东西却又突然回到了眼前.. 先概述一下批处理是个什么东东.批处理的定义,至今我也没能给出一个合适的----众多高手们也都没给出----反正我不知道----看了我也不一定信服----

  • C#隐式运行CMD命令(隐藏命令窗口)

    本文实现了C#隐式运行CMD命令的功能.下图是实例程序的主画面.在命令文本框输入DOS命令,点击"Run"按钮,在下面的文本框中输出运行结果. 下面是程序的完整代码.本程序没有使用p.StandardOutput.ReadtoEnd()和p.StandardOutput.ReadLine()方法来获得输出,因为这些方法执行后画面容易卡死.而是通过调用异步方法BeginOutputReadLine来获取输出,并在事件p.OutputDataReceived的事件处理方法中来处理结果. u

  • CMDOW 一个CMD命令行下 隐藏、禁用窗口控制程序

    唯一知道另一管理窗口的是任务管理器 2003 此外没有别的发掘了 CMDOW [window | /T] [/B] [/F] [/P] 例:执行cmdow @,显示为 Handle Lev Pid -Window status- Image Caption 0x230088 1 3356 Res Act Ena Vis cmd C:\WINDOWS\system32\cmd.exe - cmd - cm window 指定要列出的窗口,使用窗口标题或句柄来指定,没有标题的用窗口类代替.如果没有指

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

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

  • PowerShell隐藏不显示窗口的多种方法

    启动PowerShell时隐藏自己的窗口 假如我在计划任务中定时通过Powershell.exe来执行一个脚本文件,我想隐藏这个窗口,此时我们可以考虑使用PowerShell.exe的选项参数: 复制代码 代码如下: -WindowStyle  将窗口样式设置为 Normal.Minimized.Maximized 或 Hidden. 复制代码 代码如下: PowerShell.exe -WindowStyle Hidden -file '您的脚本.ps1' 在PowerShell启动其它进程时

随机推荐