转:Bat批处理文件怎么隐藏运行?隐藏运行Bat文件的几个方法

原文链接:http://www.xitonghe.com/jiaocheng/diannao-9298.html
若侵权,联系删除。
BAT文件是批处理文件,在Windows系统下以命令行的方式执行一条或多条命令。在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用cmd.exe按照该文件中各个命令出现的顺序来逐个运行它们。使用批处理文件(也被称为批处理程序或脚本),可以简化日常或重复性任务。是很多系统爱好者喜欢使用的命令!能实现的功能有很多。
然而Bat文件在运行时都会出现黑色的命令提示符窗口,让某些时候感觉不爽,如何才能隐藏运行Bat文件?下面小编介绍几种方法。

一、通过批处理命令实现。缺点:会看到一个窗口一闪而逝。优点:简单,直接添加即可。
@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

二、利用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.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 www.xitonghe.com
其中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.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。
以上方法由系统盒www.xitonghe.com 小编网络整理,希望对大家有帮助。

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于出现"不是内部或外部命令,也不是可运行的程序"的错误提示,通常是由于系统无法找到要执行的命令或程序。可能有以下几个原因导致该问题的出现: 1. 该命令或程序不存在于系统路径中。系统通过在环境变量中配置的路径来查找可执行文件。如果命令或程序没有包含在路径中,系统就无法找到它们。您可以尝试指定完整的路径来运行命令或程序,或者将其添加到系统路径中。 2. 该命令或程序可能被删除或移动到了其他位置。如果您曾经安装了某个程序,但后来将其删除或移动到其他位置,那么当您尝试运行相关命令时,系统将无法找到它们。 3. 其他配置问题。有时,系统配置可能存在问题,导致无法正确识别命令或程序。这可能是由于环境变量设置错误或系统文件损坏引起的。 要解决这个问题,您可以尝试以下几个方法: 1. 检查命令或程序的路径。确保命令或程序所在的目录在系统路径中。如果不在路径中,可以尝试在命令提示符中使用完整路径运行命令或程序。 2. 重新安装相关程序。如果命令或程序确实存在于系统中,但无法正常运行,可能是由于损坏或配置问题。尝试重新安装相关的软件或应用程序,以修复可能的问题。 3. 检查环境变量设置。确保环境变量配置正确。您可以通过执行"echo %PATH%"命令来查看当前的环境变量设置。如果发现配置错误,可以手动修改或重置环境变量。 4. 扫描系统文件。有时,系统文件可能会损坏,导致无法正确识别命令或程序。您可以使用系统自带的文件扫描工具,如sfc /scannow命令来扫描和修复系统文件

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值