统计文件信息及生成SQL语句(VBS)实例
2011-07-15 13:42
531 查看
查询文件名(带日期及大小)_0714_1655.vbs
转换成SQL20110715_1324.VBS
仅根据ID文件生成SQL_ID条件.VBS
删除文件脚本.vbs
文件改名.vbs
文件改名_改DB.sql
'====================================================================================== 'dim ws,fso,f,fd,files,tmpname,url,result,preFix set ws=createobject("wscript.shell") set fso = CreateObject("Scripting.FileSystemObject") set fd = fso.getfolder(ws.currentdirectory) set files=fd.files '生成前缀 result=ws.currentdirectory result =replace(result ,"\","+") result =replace(result ,".","_") result =replace(result ,":","=") '建立一个文本,存储文件的名字 result= result & "_" & "fileinfos.txt" set resultFile=fso.createtextfile(result,2,ture) for each f in files '读取文件的名字 要将文件名都存成小写可 将f.name 改成:lcase(f.name) tmpname="Name:<" & f.name &">Lastdate:<"& f.datelastmodified &">Size:<"& f.Size &">"'BYTE '上面语句换成以下语句后,就只查询文件名,而没有其它信息 'tmpnamef.name '把原来的文件名保存起来 resultFile.writeline tmpname next MsgBox " 完成!"
转换成SQL20110715_1324.VBS
Const ForReading=1 Const ForWriting=2 Const ForAppending=8 set fso=createobject("scripting.filesystemobject") '源文件 strSrcFile=InputBox("请输入源文件")'"W=+素材一致性问题_fileinfos.txt" set sourceFile=fso.opentextfile(strSrcFile,ForReading) '目标文件 resultFile="result_" & strSrcFile & TimeStr(Now) & ".sql" set dstFile=fso.opentextfile(resultFile,ForWriting,true) '''''''''''''''''''''''构造SQL语句 strSql= "--查询条件中硬盘文件信息来自文件:" & strSrcFile & vbCr strSql=strSql & "SELECT * FROM m_uploadtask where " & vbCr & GetSqlCondition(sourceFile,"2011-6-26") & vbCr & "" 'MsgBox strSql'测试输出 ''''''''''''''''''''''' dstFile.Write(strSql) sourceFile.Close dstFile.Close '===============================================================得到SQL语句中的条件表达式 Function GetSqlCondition(srcFile,timeBefore) oTimeBefore=DateValue(timeBefore) nValidCount=0 nTotalCount=0 delimiter="|" condition = " materialid IN (" conditionNotValid="/*" do until srcFile.atendofstream sLine=TransLineFromat(srcFile.readline,delimiter) arr=Split(sLine,delimiter) '以下是解析出的每一行中的三个变量 'If UBound(arr)=2 Then sName=arr(0) sTime=arr(1) oTime=DateValue(sTime)'不能用TimeValue sSize=arr(2) sMaterialID =Left(sName,InStr(sName,"_")-1) 'nSize=CLng(sSize) 'MsgBox sMaterialID nTotalCount=nTotalCount+1 if(oTime < oTimeBefore) Then nValidCount=nValidCount+1 condition=condition & "'" & sMaterialID & "'," Else conditionNotValid=conditionNotValid & sMaterialID & "(" & sTime & ")," End If 'end if 'result=result & " " & sName & " " & oTime & " " & nSize &vbCr'测试用 loop condition=Left(condition,Len(condition)-1) condition=condition & ")" conditionNotValid=conditionNotValid & "*/" '在SQL注释中添加统计信息 condition= condition & vbCr &"--有效ID是指"& timeBefore &"以前的素材ID," condition= condition & vbCr &"--valid/total=" & nValidCount &"/" & nTotalCount & vbTab &"未用的ID如下:" condition= condition & vbCr &"--" &conditionNotValid GetSqlCondition=condition End Function '===============================================================格式转换 Function TransLineFromat(sLine,delimiter) sReturn=sLine D = Replace( D, N & ",", "",1,1) sReturn=Replace( sReturn,"Name:<","",1,1) sReturn=Replace( sReturn,">Lastdate:<",delimiter,1,1) sReturn=Replace( sReturn,">Size:<",delimiter,1,1) sReturn=Replace( sReturn,">","",1,1) TransLineFromat=sReturn End Function '===============================================================将时间类型转换成字符串 Function TimeStr(t) ret=Year(t) & "" & Month(t) & "" & Day(t) & "_" & Hour(t) & "" & Minute(t)' & "" & Second(t) TimeStr = CStr(ret) End Function
仅根据ID文件生成SQL_ID条件.VBS
Const ForReading=1 Const ForWriting=2 Const ForAppending=8 set fso=createobject("scripting.filesystemobject") '源文件 strSrcFile=InputBox("请输入源文件")'"W=+素材一致性问题_fileinfos.txt" set sourceFile=fso.opentextfile(strSrcFile,ForReading) '目标文件 resultFile="Sql条件_" & strSrcFile & TimeStr(Now) & ".sql" set dstFile=fso.opentextfile(resultFile,ForWriting,true) '''''''''''''''''''''''构造SQL语句 strSql= "--查询条件中信息来自文件:" & strSrcFile & vbCr strSql=strSql & "SELECT * FROM m_uploadtask where " & vbCr & GetSqlCondition(sourceFile) & vbCr & "" 'MsgBox strSql'测试输出 ''''''''''''''''''''''' dstFile.Write(strSql) sourceFile.Close dstFile.Close '===============================================================得到SQL语句中的条件表达式 Function GetSqlCondition(srcFile) nTotalCount=0 condition = " materialid IN (" do until srcFile.atendofstream sLine=srcFile.readline if sLine<>"" Then nTotalCount=nTotalCount+1 condition=condition & "'" & sLine & "'," End If loop condition=Left(condition,Len(condition)-1) condition=condition & ")" '在SQL注释中添加统计信息 condition= condition & vbCr &"--total=" & nTotalCount & vbTab GetSqlCondition=condition End Function '===============================================================将时间类型转换成字符串 Function TimeStr(t) ret=Year(t) & "" & Month(t) & "" & Day(t) & "_" & Hour(t) & "" & Minute(t)' & "" & Second(t) TimeStr = CStr(ret) End Function
删除文件脚本.vbs
Const ForReading=1 Const ForWriting=2 Const ForAppending=8 Set objShell = CreateObject("Wscript.Shell") set fso=createobject("scripting.filesystemobject") 'Executeglobal fso.opentextfile("DeleteFileService.vbs ", 1).readall '建立日志文件 strDelLogFile="DeletedFile_" & TimeStr(Now) & ".log" set fLog=fso.opentextfile(strDelLogFile,ForWriting,true) Dim arrA(0)'A类1 arrA(0)="7777-7777" Dim arrB(1)'B类2 arrB(0)="9999-0007" arrB(1)="9999-0006" Dim arrF(3)'F类4 arrF(0)="4050-0882" arrF(1)="7111-4204" arrF(2)="5025-0843" arrF(3)="6032-0803" Dim arrG(9)'G类10 arrG(0)="9999-0001" arrG(1)="9999-0002" arrG(2)="9999-0021" arrG(3)="9999-0008" arrG(4)="9999-0027" arrG(5)="9999-0039" arrG(6)="9999-0041" arrG(7)="9999-0043" arrG(8)="9999-0044" arrG(9)="9999-9999" Dim arrI(0)'I类1 arrI(0)="9999-0045" '''真实的删除操作 strLogItem=DeleteArrayFile(fso,arrA) fLog.Write(strLogItem) strLogItem=DeleteArrayFile(fso,arrB) fLog.Write(strLogItem) 'F类暂不处理 'strLogItem=DeleteArrayFile(fso,arrF) 'fLog.Write(strLogItem) strLogItem=DeleteArrayFile(fso,arrG) fLog.Write(strLogItem) strLogItem=DeleteArrayFile(fso,arrI) fLog.Write(strLogItem) fLog.Close '===============================================================这个没有用到 Function GetIDSqlCondition(fso,arrFile) condition=" materialid IN (" For i = 0 To UBound(arrFile) strID = arrFile(i) condition=condition & "'" & strID & "'," Next condition=Left(condition,Len(condition)-1) condition=condition & ")" GetIDSqlCondition =condition End Function '===============================================================将时间类型转换成字符串 Function TimeStr(t) ret=Year(t) & "" & Month(t) & "" & Day(t) & "_" & Hour(t) & "" & Minute(t)' & "" & Second(t) TimeStr = CStr(ret) End Function '===============================================================删除一个数组中的文件 Function DeleteArrayFile(fso,arrFile) strDelDetail="" For i = 0 To UBound(arrFile) strID = arrFile(i) strDelDetail=strDelDetail & DeleteByMaterialID(fso,strID) Next strDelDetail=strDelDetail & vbCr DeleteArrayFile =strDelDetail End Function '===============================================================删除strID对应的所有文件 Function DeleteByMaterialID(fso,strID) '真实路径 pathKeyfram="\\172.26.142.82\server3_fs1\keyframe\" pathUploadSD="\\172.26.142.82\server3_fs1\uploadsd\" pathPrepareSD="\\172.26.142.81\server2_fs1\preparesd\" pathLow="\\172.26.142.99\lowstream\" strRetDetail="" cnt=0 strTem=pathKeyfram & strID & "_icon.dkf" bSucc=DeleteFile(fso,strTem) If bSucc =True Then strRetDetail=strRetDetail & strTem & vbCr cnt=cnt+1 End If strTem=pathUploadSD & strID & "_sd.mxf" bSucc=DeleteFile(fso,strTem) If bSucc =True Then strRetDetail=strRetDetail & strTem & vbCr cnt=cnt+1 End If strTem=pathPrepareSD & strID & "_sd.mxf" bSucc=DeleteFile(fso,strTem) If bSucc =True Then strRetDetail=strRetDetail & strTem & vbCr cnt=cnt+1 End If strTem=pathLow & strID & "_lsd.wmv" bSucc=DeleteFile(fso,strTem) If bSucc =True Then strRetDetail=strRetDetail & strTem & vbCr cnt=cnt+1 End If strRetDetail="共删除" & cnt & "个文件,文件信息:" & vbCr & strRetDetail DeleteByMaterialID = strRetDetail End Function '===============================================================删除单个文件 Function DeleteFile(fso,strFile) bRet=True If fso.FileExists(strFile) Then Set f1=fso.GetFile(strFile) fso.DeleteFile f1 bRet=True Else bRet=False End If DeleteFile = bRet End Function
文件改名.vbs
'====================================================================================== 'dim ws,fso,f,fd,files,tmpname,url,strResultFileName,preFix set ws=createobject("wscript.shell") set fso = CreateObject("Scripting.FileSystemObject") '真实路径 '关键帧 pathKeyfram="\\172.26.142.82\server3_fs1\keyframe\" '上载区 pathUploadSD="\\172.26.142.82\server3_fs1\uploadsd\" pathUploadHD="\\172.26.142.82\server3_fs1\uploadhd\" '备播区 pathPrepareSD="\\172.26.142.81\server2_fs1\preparesd\" pathPrepareHD="\\172.26.142.83\server4_fs1\preparehd\" '低码区 pathLowSD="\\172.26.142.99\lowstream\" pathLowHD="\\172.26.142.81\server2_fs1\lowerhd\" '建立一个LOG文件 strResultFileName=ws.currentdirectory strResultFileName =replace(strResultFileName ,"\","+") strResultFileName =replace(strResultFileName ,".","_") strResultFileName =replace(strResultFileName ,":","=") strResultFileName= strResultFileName & "_" & TimeStr(Now) & "LOG.txt" set fLog=fso.createtextfile(strResultFileName,2,ture) '开始重命名 '关键帧 cnt=ReName(fso,pathKeyfram,"_ICON.DKF",".DKF",fLog) '上载区 cnt=ReName(fso,pathUploadSD,"S_SD.mxf","S.mxf",fLog) cnt=ReName(fso,pathUploadHD,"H_HD.mxf","H.mxf",fLog) '备播区 cnt=ReName(fso,pathPrepareSD,"S_SD.mxf","S.mxf",fLog) cnt=ReName(fso,pathPrepareHD,"H_HD.mxf","H.mxf",fLog) '低码区 cnt=ReName(fso,pathLowSD,"S_LSD.wmv","S.wmv",fLog) cnt=ReName(fso,pathLowSD,"S_LS.wmv","S.wmv",fLog) cnt=ReName(fso,pathLowSD,"SL.wmv","S.wmv",fLog) cnt=ReName(fso,pathLowHD,"H_LHD.wmv","H.wmv",fLog) cnt=ReName(fso,pathLowHD,"H_LH.wmv","H.wmv",fLog) cnt=ReName(fso,pathLowHD,"HL.wmv","H.wmv",fLog) cnt=ReName(fso,pathLowHD,"H_LS.wmv","H.wmv",fLog) fLog.Close MsgBox " 完成!" '===================================================================================对指定文件夹下文件重命名 Function ReName(fso,path,strOld,strNew,fLog) fLog.writeline "正在重命名:" & path & " " & strOld & "->" & strNew set fd = fso.getfolder(path) set files=fd.files newName="" oldName="" nDealedCnt=0 for each f in files newName=f.Name oldName=f.Name If InStr(oldName,strOld)>0 Then newName=Replace( newName,strOld,strNew,1,1) 'newName=Replace( newName,"H.mxf","H_HD.mxf",1,1) '重命名 fso.MoveFile path & oldName, path & newName '记日志 fLog.writeline oldName & "->" & newName '统计 nDealedCnt=nDealedCnt+1 End If next fLog.writeline "已处理:" & nDealedCnt & "个" ReName = nDealedCnt End Function '===============================================================将时间类型转换成字符串 Function TimeStr(t) ret=Year(t) & "" & Month(t) & "" & Day(t) & "_" & Hour(t) & "" & Minute(t)' & "" & Second(t) TimeStr = CStr(ret) End Function
文件改名_改DB.sql
--标清 UPDATE MS_FILE SET FILENAME = REPLACE(FILENAME, 'S_SD.mxf', 'S.mxf') WHERE FILENAME LIKE '%S_SD.mxf%' update M_UPLOADTASK set TECHNICREPORT=Replace(Cast(TECHNICREPORT as varchar(8000)),'S_SD.mxf','S.mxf') WHERE TECHNICREPORT LIKE '%S_SD.mxf%' --高清 UPDATE MS_FILE SET FILENAME = REPLACE(FILENAME, 'H_HD.mxf', 'H.mxf') WHERE FILENAME LIKE '%H_HD.mxf%' update M_UPLOADTASK set TECHNICREPORT=Replace(Cast(TECHNICREPORT as varchar(8000)),'H_HD.mxf','S.mxf') WHERE TECHNICREPORT LIKE '%H_HD.mxf%' --关键帧 UPDATE MS_FILE SET FILENAME = REPLACE(FILENAME, '_ICON.DKF', '.DKF') WHERE FILENAME LIKE '%_ICON.DKF%' --低码 UPDATE MS_FILE SET FILENAME = REPLACE(FILENAME, 'H_LHD.wmv', 'H.wmv') WHERE FILENAME LIKE '%H_LHD.wmv%' UPDATE MS_FILE SET FILENAME = REPLACE(FILENAME, 'H_LH.wmv', 'H.wmv') WHERE FILENAME LIKE '%H_LH.wmv%' UPDATE MS_FILE SET FILENAME = REPLACE(FILENAME, 'HL.wmv', 'H.wmv') WHERE FILENAME LIKE '%HL.wmv%' UPDATE MS_FILE SET FILENAME = REPLACE(FILENAME, 'H_LS.wmv', 'H.wmv') WHERE FILENAME LIKE '%H_LS.wmv%' UPDATE MS_FILE SET FILENAME = REPLACE(FILENAME, 'S_LSD.wmv', 'S.wmv') WHERE FILENAME LIKE '%S_LSD.wmv%' UPDATE MS_FILE SET FILENAME = REPLACE(FILENAME, 'S_LS.wmv', 'S.wmv') WHERE FILENAME LIKE '%S_LS.wmv%' UPDATE MS_FILE SET FILENAME = REPLACE(FILENAME, 'SL.wmv', 'S.wmv') WHERE FILENAME LIKE '%SL.wmv%'
相关文章推荐
- PDM文件生成sql执行语句
- poi读取xls文件并生成sql语句
- 关于enum ,调用webservice,用户控件与主页面之间的交互,datsource属性,net面试题,反射类生成sql语句,URl重写一个小实例
- 如何在sqlplus中查看oracle数据库sql语句执行计划,执行时间和统计信息
- 比较两个文件不同以及生成SQL插入语句
- 动态生成多条插入语句如:insert into MyStudents values(“人名1”,年龄,‘男’,分数1,分数2)。将生成的插入语句输出到记事本文件 SQLStr.txt中
- SQL语句调优 - 统计信息的含义与作用及维护计算
- 转自【柳永法】SQL统计:从北京到天津的与从天津到北京的汇总到一起 常用sql语句 SQL Server 生成版权信息及测试环境信息
- SQL语句练习实例之六——人事系统中的缺勤(休假)统计
- 动态生成sql语句实例
- SQL语句练习实例之六 人事系统中的缺勤(休假)统计
- 得用SQL语句生成某个库下所有存储过程脚本,并每个存为一个文件
- 一个 Sql语句优化的问题- STATISTICS 统计信息
- 用sql语句统计生成(统计项目,值)对
- 生成实体文件 需要用到的SQL 语句
- 命令行方式使用abator.jar生成ibatis相关代码和sql语句xml文件
- sqlite3的sql语句用法总结与SQLite生成.db-journal文件问题
- ASP中巧用Split()函数生成SQL查询语句的实例
- SQL语句调优 - 统计信息的含义与作用及维护计算
- 创建maven项目,将该配置文件运行即可生成 sql 语句