使用VBS隐藏运行批处理

引言

这篇文章给大家简单的介绍一下如何使用一个VBS脚本文件隐藏调用批处理命令。

编写过批处理的朋友都知道,批处理在执行的过程中会出现一个黑色的窗口,如果你不想让这个窗口出现,可以使用一个VBS脚本文件来调用这个批处理实现隐藏窗口的目的,同样这个VBS脚本文件还能直接执行任何CMD下能够执行的命令。

文章目录

0×1.使用VBS文件调用批处理文件

请看下面的实例,在C盘中有个test目录,在这个目录中,用echo创建了一个batName.bat的文件,这个批处理将执行一条命令,调用系统的记事本程序,但执行这个批处理的时候会出现一个黑框,创建一个vbs文件,使用这个vbs来执行这个批处理文件,将不出现黑框,达到隐藏cmd窗口的目的。

					//首先创建批处理文件,将notepad命令写入这个批处理文件中,">"是一个重定向命令,意思是将这个符号前面的字符串写入这个符号后面的文件中,如果这个文件已经存在,则会清空原有数据,再将文本写入第一行
					C:\test>echo notepad > batName.bat

					//执行这个批处理会出现记事本程序,在CMD中直接执行不会出现黑框,因为CMD本身就是那个黑框,如果是在图形界面下双击这个批处理,就会发现,除了笔记本外,还运行了一个cmd窗口
					C:\test>batName.bat

					//创建vbs文件,vbs要与这个批处理在同一个目录中,如果不在同一个目录请将下面第二条命令中的bat文件名称替换成带目录的绝对路径,符号">>"也是一个重定向符号,意思是将这个符号前面的字符串追加写入后面的文件中(另起一行,写入数据,而不清空原有文本)
					C:\test>echo Set QingSword=Wscript.CreateObject("Wscript.Shell") > hiddenCmd.vbs
					C:\test>echo QingSword.run "cmd /c batName.bat",0 >> hiddenCmd.vbs

					//执行这个vbs脚本,就会调用批处理从而调用记事本程序,如果在图形界面双击这个vbs脚本,会发现只是运行了记事本,cmd窗口被隐藏了
					C:\test>hiddenCmd.vbs
					

vbs脚本命令解析:

Set 后面跟的是一个变量,这里变量指定为QingSword,而"QingSword=Wscript.CreateObject("Wscript.Shell")",可以理解为将一个脚本解析引擎赋值给这个变量,或者理解为执行这一句之后,就可以使用"QingSword.run"输入一些脚本命令,让系统执行。

QingSword.run "cmd /c BatName.bat",0
"cmd /c "后面可以直接跟可以执行的CMD命令,同样也可以跟一个批处理文件,最后的0代表隐藏运行。

0×2.使用VBS直接调用批处理语句

vbs脚本不仅仅可以调用批处理隐藏cmd窗口运行,其本身可以直接运行cmd命令,比调用批处理更具有隐蔽性,请看下面的实例:

					//使用echo创建hv.vbs脚本
					C:\test>echo Set QingSword=Wscript.CreateObject("Wscript.Shell") > hv.vbs

					//直接用vbs脚本调用notepad记事本程序
					C:\test>echo QingSword.run "cmd /c notepad",0 >> hv.vbs

					//创建一个系统用户,用户名是qingsword,密码123456
					C:\test>echo QingSword.run "cmd /c net user qingsword 123456 /add",0 >> hv.vbs

					//使用命令行注册表编辑器创建键
					C:\test>echo QingSword.run "cmd /c reg add hklm\software\qingsword",0 >> hv.vbs

					//现在双击或者在cmd中执行上面的vbs脚本,上面的三条命令将会静默完成,除了我们故意要弹出来的记事本程序外,下面两条命令被悄无声息的执行了,简而言之,这种方法能在"cmd /c "后面添加系统中能够支持的所有批处理命令。