『楼 主』:
[分享]vbs脚本打包
我马甲的原文:
http://hi.baidu.com/paktc/blog/item/d623622513ba9f09918f9dc3.html
因个人需要而做的,通用性就没去想拉~
写它的原因:
我喜欢把脚本用txt格式放在ys168网盘里(经常换地方上线,有网盘真好),
这样就可以直接打开-复制文本而不用另存。不过假如是几个脚本配合执行,
或者有其他外部文件环境需要用到,那就又要压缩了,于是就做了曾经的:
批处理脚本打包工具
http://www.cn-dos.net/forum/viewthread.php?tid=44620
(回看后才想起来,该代码有个地方可以合并)
这次打算用vbs来一个,顺便修理一下,代码如下:
'#act#parcel.vbe
''ThisScriptParcel,code by paktc + if_exist + 523066680
:set fs=createobject("scripting.filesystemobject")
:set readme=fs.opentextfile(wscript.scriptname)
:act=0
:while readme.atendofstream=false
: linea=readme.readline
: if left(linea,6)=chr(39) &"#end#" then
: act=0 : fnow.close
: end if
: if act=1 then
: fnow.writeline mid(linea,2)
: end if
: if left(linea,6)=chr(39) &"#act#" then
: act=1
: set fnow=fs.createtextfile(mid(linea,7),true)
: end if
:wend
'wscript.quit
'#end#parcel.vbe
fold=replace(wscript.scriptfullname,wscript.scriptname,"")
set parcel=fs.opentextfile("parcel.vbe",8)
strx=""
format="txt,vbs,bat"
for each fname in fs.getfolder(fold).files
if replace(format,lcase(right(fname,3)),"")<>format then
if replace(fname,wscript.scriptname,"")=fname then
strx=strx& fname &vbcrlf
set readx=fs.opentextfile(fname)
parcel.writeline chr(39) &"#act#"&fs.getfilename(fname)
parcel.writeline chr(39) &replace(readx.readall,vbcrlf,vbcrlf &chr(39))
parcel.writeline chr(39) &"#end#"&fs.getfilename(fname)
end if
end if
next
readx.close : parcel.close : msgbox strx
wscript.quit 打包当前的vbs txt bat三种脚本(个人用途) 生成parcel.vbe
包裹里有个代码,来判断自身内容并导出的,这个代码要
打包脚本来生成。而打包脚本本身要读取自身的这部分代码,并导出给包裹的开头。
因为功能有相同之处,我就写成读取自身的这部分并交给包裹,所以减少了一段。
批处理那个我就不改了,让它沉淀一下。^_^
[ Last edited by 523066680 on 2009-10-21 at 08:57 ]
|