'全局对象 Set fso=createobject("scripting.filesystemobject") Set shell = CreateObject ("Wscript.Shell") Rem : =========== 启动主程序 Dim starttime , Endtime starttime = Now WriteLog vbNullString WriteLog "========================================" WriteLog "Script start at : " & starttime Call main() Endtime = Now WriteLog "Script end at : " & Endtime WriteLog "========================================" WriteLog vbNullString Set fso = Nothing Rem : =========== 主程序 Sub main() End Sub Rem : =========== 将信息写入日志文件 Rem : =========== 在脚本所在的目录下建立以脚本名称+日期为名称的txt文件 Rem : =========== 会自动在写入的每条日志前加上日期时间 Sub WriteLog(strmsg) Dim logtxt logtxt = WScript.ScriptFullName & "_" & Date & ".txt" Dim f If fso.fileexists(logtxt) Then Set f = fso.opentextfile(logtxt, 8 ) Else Set f = fso.opentextfile(logtxt, 2, true) End If f.writeline Now & " : " &strmsg f.close Set f = Nothing Wscript.Sleep 5 End Sub Rem : =========== 打开浏览器,选中指定文件或文件夹 Rem : =========== 文件或文件夹必须存在 Sub ExplorerSel(path) Dim f f = Trim( path ) If Right(f,1) = "/" Then f = Left(f,Len(f) -1 ) If fso.fileexists(f) = False And fso.folderexists(f) = False Then Err.Raise vbObjectError+128, "ExplorerSel", f & " does not exists" Dim errMsg On Error Resume Next Rem ====== code begin shell.Run "explorer.exe /select," & Chr(34) & f & Chr(34),1,TRUE Rem ====== code end If Err.Number <> 0 Then errMsg = Err.Description On Error Goto 0 Err.Raise vbObjectError+128, "ExplorerSel", errMsg & vbNewLine & _ " path:" & vbTab & path Exit Sub End If End Sub Rem : =========== 写入多行文本,会覆盖文件中已有的内容 Rem : =========== 文件必须存在 Rem : =========== text 中能够是单行,也能够是多行文本, Sub WriteText( file, text ) Dim f f = Trim( file ) If Right(f,1) = "/" Then f = Left(f,Len(f) -1 ) If fso.fileexists(f) = False Then Err.Raise vbObjectError+128, "WriteText", f & " does not exists" Dim errMsg On Error Resume Next Rem ====== code begin Const ForReading = 1, ForWriting = 2 Dim fi Set fi = fso.OpenTextFile(f, ForWriting, True) fi.Write text fi.close Rem ====== code end If Err.Number <> 0 Then errMsg = Err.Description On Error Goto 0 Err.Raise vbObjectError+128, "WriteText", errMsg & vbNewLine & _ " file:" & vbTab & file & vbNewLine & _ " text:" & vbTab & text Exit Sub End If End Sub Rem : =========== 追加单行文本,文件不存在建立文件 Rem : =========== 文件必须存在 Rem : =========== line 中能够是单行,也能够是多行文本, Sub AppendLine( file, line ) Dim f f = Trim( file ) If Right(f,1) = "/" Then f = Left(f,Len(f) -1 ) If fso.fileexists(f) = False Then Err.Raise vbObjectError+128, "AppendLine", f & " does not exists" Dim errMsg On Error Resume Next Rem ====== code begin const forappending = 8 set objtextfile = fso.opentextfile (file, forappending, true) objtextfile.writeline(line) objtextfile.close Rem ====== code end If Err.Number <> 0 Then errMsg = Err.Description On Error Goto 0 Err.Raise vbObjectError+128, "AppendLine", errMsg & vbNewLine & _ " file:" & vbTab & file & vbNewLine & _ " line:" & vbTab & line Exit Sub End If End Sub Rem : =========== 显示选择文件对话框,返回文件路径 Rem : =========== 取消则返回空字符串 Function SelectfileDialog( ) Set objDialog = CreateObject("UserAccounts.CommonDialog") objDialog.Filter = "All Files|*.*" objDialog.InitialDir = "C:/" intResult = objDialog.ShowOpen If intResult = 0 Then SelectfileDialog = vbNullString Else SelectfileDialog = objDialog.FileName End If End Function Rem : =========== 复制文本到剪贴板 Sub SetTextToClipboard( text ) Set objIE = CreateObject("InternetExplorer.Application") objIE.Navigate("about:blank") objIE.document.parentwindow.clipboardData.SetData "text", text objIE.Quit End Sub Rem : =========== 文件是否存在 Function FileExists( path ) FileExists = fso.fileexists(path) End Function Rem : =========== 文件夹是否存在 Function FolderExists( path ) FolderExists = fso.FolderExists(path) End Function Rem : =========== 删除文件 Rem : =========== 文件必须存在 Sub DeleteFile( file ) If fso.fileexists(file) = false Then Err.Raise vbObjectError+128, "DeleteFile", "File : " & file & " does not exist" Dim errMsg On Error Resume Next Rem ====== code begin fso.deletefile file, True Rem ====== code end If Err.Number <> 0 Then errMsg = Err.Description On Error Goto 0 Err.Raise vbObjectError+128, "DeleteFile", errMsg & vbNewLine & _ " file:" & vbTab & file Exit Sub End If End Sub Rem : =========== 删除文件夹,无论是否为空 Rem : =========== 文件夹必须存在 Sub DeleteFolder( folder ) Dim f1 f1 = folder If Right(folder,1) = "/" Then f1 = Left(folder,Len(folder) -1 ) If fso.folderexists(f1)=False Then Err.Raise vbObjectError+128, "DeleteFolder", "Folder : " & f1 & " does not exist" Dim errMsg On Error Resume Next Rem ====== code begin fso.DeleteFolder f1, True Rem ====== code end If Err.Number <> 0 Then errMsg = Err.Description On Error Goto 0 Err.Raise vbObjectError+128, "DeleteFolder", errMsg & vbNewLine & _ " folder:" & vbTab & folder Exit Sub End If End Sub Rem : =========== 将文件 file 移动到文件夹 folder 中,至关于剪切操做 Rem : =========== file必须存在 Rem : =========== folder必须存在且属性不能为只读 Rem : =========== foler中不能存在与file同名的文件或文件夹 Sub MoveFile( file, folder ) Dim f1, f2 f1 = file f2 = folder If Right(f1,1) = "/" Then f1 = Left(f1,Len(f1) -1 ) If Right(f2,1) = "/" Then f2 = Left(f2,Len(f2) -1 ) If fso.fileexists(f1)=False Then Err.Raise vbObjectError+128, "MoveFile", "File : " & f1 & " does not exist" End If If fso.folderexists(f2)=False Then Err.Raise vbObjectError+128, "MoveFile", "Folder : " & f2 & " does not exist" End If Dim f f = f2 & "/" & fso.GetFileName(f1) If fso.fileexists(f) = True Or fso.folderexists(f) = True Then Err.Raise vbObjectError+128, "MoveFile", f & " already exists" End If Dim errMsg On Error Resume Next fso.MoveFile f1, f2 & "/" If Err.Number <> 0 Then errMsg = Err.Description On Error Goto 0 Err.Raise vbObjectError+128, "MoveFile", errMsg & vbNewLine & _ " file:" & vbTab & file & vbNewLine & _ " folder:" & vbTab & folder Exit Sub End If End Sub Rem : =========== 将文件夹 folder1 移动到文件夹 folder2 中 Rem : =========== folder1必须存在 Rem : =========== folder2必须存在且属性不能为只读 Rem : =========== foler2中不能存在与folder1同名的文件或文件夹 Sub MoveFolder( folder1, folder2 ) Dim f1, f2 f1 = folder1 f2 = folder2 If Right(folder1,1) = "/" Then f1 = Left(folder1,Len(folder1) -1 ) If Right(folder2,1) = "/" Then f2 = Left(folder2,Len(folder2) -1 ) If fso.folderexists(f1)=False Then Err.Raise vbObjectError+128, "MoveFolder", "Folder : " & f1 & " does not exist" If fso.folderexists(f2)=False Then Err.Raise vbObjectError+128, "MoveFolder", "Folder : " & f2 & " does not exist" f = f2 & "/" & fso.GetBaseName(f1) If fso.fileexists(f) = True Or fso.folderexists(f) = True Then Err.Raise vbObjectError+128, "MoveFolder", f & " already exists" Exit Sub End If Dim errMsg On Error Resume Next Rem ====== code begin ' 同一分区,移动 If fso.GetDriveName(f1) <> vbNullString And fso.GetDriveName(f1) = fso.GetDriveName(f2) Then fso.MoveFolder f1, f2 & "/" ' 不一样分区,复制后删除 Else fso.CopyFolder f1, f2 & "/", False fso.DeleteFolder f1, True End If Rem ====== code end If Err.Number <> 0 Then errMsg = Err.Description On Error Goto 0 Err.Raise vbObjectError+128, "MoveFolder", errMsg & vbNewLine & _ " folder1:" & vbTab & folder1 & vbNewLine & _ " folder2:" & vbTab & folder2 Exit Sub End If End Sub Rem : =========== 将文件 file 复制到文件夹 folder 中 Rem : =========== file必须存在 Rem : =========== folder必须存在且属性不能为只读 Rem : =========== foler中不能存在与file同名的文件或文件夹 Sub CopyFile( file, folder ) Dim f1, f2 f1 = file f2 = folder If Right(f1,1) = "/" Then f1 = Left(f1,Len(f1) -1 ) If Right(f2,1) = "/" Then f2 = Left(f2,Len(f2) -1 ) If fso.fileexists(f1)=False Then Err.Raise vbObjectError+128, "CopyFile", "File : " & f1 & " does not exist" End If If fso.folderexists(f2)=False Then Err.Raise vbObjectError+128, "CopyFile", "Folder : " & f2 & " does not exist" End If Dim f f = f2 & "/" & fso.GetFileName(f1) If fso.fileexists(f) = True Or fso.folderexists(f) = True Then Err.Raise vbObjectError+128, "CopyFile", f & " already exists" End If Dim errMsg On Error Resume Next fso.CopyFile f1, f2 & "/", False If Err.Number <> 0 Then errMsg = Err.Description On Error Goto 0 Err.Raise vbObjectError+128, "CopyFile", errMsg & vbNewLine & _ " file:" & vbTab & file & vbNewLine & _ " folder:" & vbTab & folder Exit Sub End If End Sub Rem : =========== 将文件夹 folder1 复制到文件夹 folder2 中 Rem : =========== folder1必须存在 Rem : =========== folder2必须存在且属性不能为只读 Rem : =========== foler2中不能存在与folder1同名的文件或文件夹 Sub CopyFolder( folder1, folder2 ) Dim f1, f2 f1 = folder1 f2 = folder2 If Right(folder1,1) = "/" Then f1 = Left(folder1,Len(folder1) -1 ) If Right(folder2,1) = "/" Then f2 = Left(folder2,Len(folder2) -1 ) If fso.folderexists(f1)=False Then Err.Raise vbObjectError+128, "CopyFolder", "Folder : " & f1 & " does not exist" If fso.folderexists(f2)=False Then Err.Raise vbObjectError+128, "CopyFolder", "Folder : " & f2 & " does not exist" f = f2 & "/" & fso.GetBaseName(f1) If fso.fileexists(f) = True Or fso.folderexists(f) = True Then Err.Raise vbObjectError+128, "CopyFolder", f & " already exists" Exit Sub End If Dim errMsg On Error Resume Next Rem ====== code begin fso.CopyFolder f1, f2 & "/", False Rem ====== code end If Err.Number <> 0 Then errMsg = Err.Description On Error Goto 0 Err.Raise vbObjectError+128, "CopyFolder", errMsg & vbNewLine & _ " folder1:" & vbTab & folder1 & vbNewLine & _ " folder2:" & vbTab & folder2 Exit Sub End If End Sub Rem : =========== 得到文件名,不包括路径部分 Rem : =========== file 必须存在 Function GetFileName( file ) If fso.fileexists(file)=False Then Err.Raise vbObjectError+128, "GetFileName", "File : " & file & " does not exist" Dim errMsg On Error Resume Next ' =========== code begin GetFileName = fso.GetFileName(file) ' =========== code end If Err.Number <> 0 Then errMsg = Err.Description On Error Goto 0 Err.Raise vbObjectError+128, "GetFileName", errMsg & vbNewLine & _ " file:" & vbTab & file Exit function End If End function Rem : =========== 将文件 file 从新命名,路径不变,名称为 newName Rem : =========== file 必须存在 Rem : =========== newName 只能是文件名,不能包含路径信息 Rem : =========== newName 不能是 file 所在目录中已有的文件或文件夹 Sub RenameFile( file, newName ) If fso.fileexists(file) = false Then Err.Raise vbObjectError+128, "RenameFile", "File : " & file & " does not exist" If Len(fso.getfilename(newName)) <> Len(newName) Then Err.Raise vbObjectError+128, "RenameFile", newName & " contains path info" Dim f f = fso.GetParentFolderName(file) If Right(f,1) <> "/" Then f = f & "/" f = f & newName If fso.fileexists(f) = True Or fso.folderexists(f) = True Then Err.Raise vbObjectError+128, "RenameFile", f & " already exists" Dim errMsg On Error Resume Next Rem ====== code begin fso.MoveFile file, f Rem ====== code end If Err.Number <> 0 Then errMsg = Err.Description On Error Goto 0 Err.Raise vbObjectError+128, "RenameFile", errMsg & vbNewLine & _ " file:" & vbTab & file & vbNewLine & _ " newName:" & vbTab & newName Exit Sub End If End Sub Rem : =========== 将文件加 folder 从新命名,路径不变,名称为 newFolder Rem : =========== folder 必须存在 Rem : =========== newName 只能是文件夹名称,不能包含路径信息 Rem : =========== newName 不能是 folder 所在目录中已有的文件或文件夹 Sub RenameFolder( folder, newName ) If fso.FolderExists(folder) = false Then Err.Raise vbObjectError+128, "RenameFolder", "Folder : " & folder & " does not exist" If Len(fso.getfilename(newName)) <> Len(newName) Then Err.Raise vbObjectError+128, "RenameFolder", newName & " contains path info" Dim f f = fso.GetParentFolderName(folder) If Right(f,1) <> "/" Then f = f & "/" f = f & newName If fso.fileexists(f) = True Or fso.folderexists(f) = True Then Err.Raise vbObjectError+128, "RenameFolder", f & " already exists" Dim errMsg On Error Resume Next Rem ====== code begin fso.MoveFolder folder, f Rem ====== code end If Err.Number <> 0 Then errMsg = Err.Description On Error Goto 0 Err.Raise vbObjectError+128, "RenameFolder", errMsg & vbNewLine & _ " folder:" & vbTab & folder & vbNewLine & _ " newName:" & vbTab & newName Exit Sub End If End Sub Rem : =========== 建立文件夹 Rem : =========== 不能有同名的文件或文件夹 Rem : =========== 父文件夹必须存在 Sub CreateFolder( folder ) Dim f f = Trim( folder ) If Right(f,1) = "/" Then f = Left(f,Len(f) -1 ) If fso.fileexists(f) = True Or fso.folderexists(f) = True Then Err.Raise vbObjectError+128, "CreateFolder", f & " already exists" If fso.folderexists(fso.GetParentFolderName(f)) = False Then Err.Raise vbObjectError+128, "CreateFolder", fso.GetParentFolderName(f) & " does not exists" Dim errMsg On Error Resume Next Rem ====== code begin fso.CreateFolder f Rem ====== code end If Err.Number <> 0 Then errMsg = Err.Description On Error Goto 0 Err.Raise vbObjectError+128, "CreateFolder", errMsg & vbNewLine & _ " folder:" & vbTab & folder Exit Sub End If End Sub Rem : =========== 建立文本文件 Rem : =========== 不能有同名的文件或文件夹 Rem : =========== 父文件夹必须存在 Sub CreateTextFile( file ) Dim f f = Trim( file ) If Right(f,1) = "/" Then f = Left(f,Len(f) -1 ) If fso.fileexists(f) = True Or fso.folderexists(f) = True Then Err.Raise vbObjectError+128, "CreateFolder", f & " already exists" If fso.folderexists(fso.GetParentFolderName(f)) = False Then Err.Raise vbObjectError+128, "CreateFolder", fso.GetParentFolderName(f) & " does not exists" Dim errMsg On Error Resume Next Rem ====== code begin fso.CreateTextFile f, false Rem ====== code end If Err.Number <> 0 Then errMsg = Err.Description On Error Goto 0 Err.Raise vbObjectError+128, "CreateTextFile", errMsg & vbNewLine & _ " file:" & vbTab & file Exit Sub End If End Sub 'Rem : =========== 注释 'Sub {FunctionName}( {par1}, {par2} ) ' If {condition} Then Err.Raise vbObjectError+128, "{FunctionName}", "Error Description" ' If {condition} Then Err.Raise vbObjectError+128, "{FunctionName}", "Error Description" ' Dim errMsg ' On Error Resume Next ' Rem ====== code begin ' Rem ====== code end ' If Err.Number <> 0 Then ' errMsg = Err.Description ' On Error Goto 0 ' Err.Raise vbObjectError+128, "{FunctionName}", errMsg & vbNewLine & _ ' " {par1}:" & vbTab & {par1} & vbNewLine & _ ' " {par2}:" & vbTab & {par2} ' Exit Sub ' End If 'End Sub