中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 隐藏CMD批处理运行窗口+同时运行多个批处理HIDECMD.VBS
作者:
标题: 隐藏CMD批处理运行窗口+同时运行多个批处理HIDECMD.VBS 上一主题 | 下一主题
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『楼 主』:  隐藏CMD批处理运行窗口+同时运行多个批处理HIDECMD.VBS

另存为HIDECMD.VBS

'HIDECMD.VBS        BY: fastslz        http://bbs.cn-dos.net                2007-01-03
'隐藏批处理运行窗口本身就是风险代码,如果你很菜请离开此页!

Usage1 = "请将批处理文件Bat、Cmd拖放到此文件上"
Usage2 = "命令语法1: HIDECMD.VBS  ""D:\Test.bat"""
Usage3 = "命令语法2: HIDECMD.VBS /M  ""D:\Test1.bat"" ""D:\Test2.bat""        "
Usage4 = "隐藏批处理运行窗口工具"
Options = "/M"

set objShell = CreateObject ("Wscript.Shell")
set BatFile = WScript.Arguments
if BatFile.Count = 0 Then
   MsgBox Usage1 &vbCrLf& Usage2 &vbCrLf& Usage3, 4096+vbInformation, Usage4
   Wscript.Quit(0)
end if
if BatFile.Count > 1 Then
   ignoring = StrComp(BatFile(0), Options, vbTextCompare)
        if ignoring = 0 Then
            For I = 1 To BatFile.Count - 1
                MultiBat = BatFile(I)
                Call RunBat(MultiBat)
            Next
            Wscript.Quit(0)
        else
        objShell.Popup "参数太多或语法错误!"&vbCrLf&"此提示框在5秒后自动退出 ",5, "程序意外终止"
        Wscript.Quit(0)
        end if
end if
MultiBat=BatFile(0)
Call RunBat(MultiBat)
Wscript.Quit(0)

Function RunBat(MultiBat)
BatTmp=split(MultiBat,"\")
BatName=BatTmp(UBound(BatTmp))
ignoring = StrComp(MultiBat, BatName, vbTextCompare)
    if ignoring = 0 Then
    BatPath=left(Wscript.ScriptFullName,len(Wscript.ScriptFullName)-len(Wscript.ScriptName))
    else
    BatPath=Left(MultiBat,Len(MultiBat)-Len(BatName))
    end if
objShell.CurrentDirectory=BatPath
objShell.Run ("%Comspec% /c "&Chr(34)&BatPath&BatName&Chr(34)),vbHide
End Function


  

[ Last edited by fastslz on 2008-2-11 at 09:08 PM ]



第一高手    第二高手

2008-1-6 13:28
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 2 楼』:  

学习

PS: 我的symantec没报警^_^

2008-1-6 14:55
查看资料  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 3 楼』:  

symantec没报高风险那说明至少比cmdow.exe要强

测试这个代码时还发现%Comspec% /c 一个BUG
运行%Comspec% /c "D:\1 1"

  Quote:
D:\1 1.bat内容
@echo off
echo %~f0
pause

%~f0显示结果没有扩展名的,运行%Comspec% /c "D:\1"却能正确显示扩展名,所以大家尽量避免带空格的批处理文件名



第一高手    第二高手

2008-1-6 15:25
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『第 4 楼』:  

问楼主:
HIDECMD.VBS在何处生成?

2008-1-8 18:29
查看资料  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 5 楼』:  

另存为HIDECMD.VBS



第一高手    第二高手

2008-1-8 19:06
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
313885174
中级用户





积分 206
发帖 100
注册 2007-7-9
状态 离线
『第 6 楼』:  

看标题不错
要是能解释所有的语句就更好了

2008-1-8 19:38
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: