现在的位置: 首页 Script >正文

菜刀数据库导出脚本

很久前写的菜刀数据库导入/导出脚本

用法:

将db.mdb中数据导出至export.txt
cscript export.vbs /e db.mdb export.txt
将export.txt导入db.mdb
cscript export.vbs /i db.mdb export.txt
x64环境下要用%windir%\syswow64\cscript,否则会报未注册组件的错误

代码:

scripthost = wscript.fullname
scripthost = right(scripthost, 11)
if not (ucase(scripthost) = "CSCRIPT.EXE") then
set ws=CreateObject("wscript.shell")
ws.run "cscript /nologo "&""""&wscript.scriptfullname&""""
wscript.quit
end if
set args = wscript.arguments
if args.count<>3 then
call help
end if
set conn =CreateObject("ADODB.Connection")
pwd="密"&chr(13)&chr(9)&chr(10)&"码"&chr(2)
connStr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & args(1)&" ;Mode=Share Deny Read|Share Deny Write;Persist Security Info=False;Jet OLEDB:Database Password="&pwd&";"
conn.open connstr
set fso=CreateObject("scripting.filesystemobject")
if(args(0)="/i") then
call import
else
call export
end if
conn.close
set fso=nothing
set conn=nothing
wscript.echo "done"

function help()
wscript.echo "chopper export/import tool by zcgonvh"
wscript.echo "usage: cscript "&wscript.scriptname&" </e|/i> MDB TXT"
wscript.echo "/e:export to text"
wscript.echo "/i:import from text"
wscript.quit
end function

function export()
set optfile=fso.opentextfile(args(2),8,true)
set rs =CreateObject("ADODB.RecordSet")
rs.Open "select * from SITE",conn,1,1
do while not rs.eof
tmptext=rs("siteurl") &chr(9)& rs("sitepass") &chr(9)& rs("ntype")&chr(9)& rs("ncodepage")&chr(9)
select case rs("nscript")
case 0:tmptext=tmptext&"php"
case 1:tmptext=tmptext&"aspx"
case 2:tmptext=tmptext&"asp"
case else:tmptext=tmptext&"customize"
end select
optfile.writeline tmptext
rs.movenext
loop
rs.close
optfile.close
set optfile=nothing
set rs=nothing
end function

function import()
Set optfile=fso.opentextfile(args(2),1)
do while not optfile.atendofstream
tmparr = split(optfile.readline,chr(9))
sql="insert into SITE(siteurl,sitepass,ntype,ncodepage,nscript) values("""&tmparr(0)&""","""&tmparr(1)&""","&tmparr(2)&","&tmparr(3)&","
select case lcase(tmparr(4))
case "php":sql=sql&"0)"
case "aspx":sql=sql&"1)"
case "asp":sql=sql&"2)"
case else:sql=sql&"3)"
end select
conn.execute(sql)
loop
set optfile = nothing
end function

另:各种语言的菜刀数据库密码:

"密"&chr(13)&chr(9)&chr(10)&"码"&chr(2)
byte pwd[]={0xc3,0xdc,0x0d,0x09,0x0a,0xc2,0xeb,0x02};(char*)pwd
Encoding.GetEncoding(936).GetString(new byte[]{0xc3,0xdc,0x0d,0x09,0x0a,0xc2,0xeb,0x02})

分别对应VB/C++/C#