Set fso = CreateObject("Scripting.FileSystemObject")
' 创建文本文件
Set file = fso.CreateTextFile("C:\test.txt", True)
file.WriteLine "Hello World"
file.Close
' 创建空文件
fso.CreateTextFile("C:\empty.txt")
Set fso = CreateObject("Scripting.FileSystemObject")
' 读取整个文件
Set file = fso.OpenTextFile("C:\test.txt", 1)
content = file.ReadAll
file.Close
MsgBox content
' 逐行读取
Set file = fso.OpenTextFile("C:\test.txt", 1)
Do Until file.AtEndOfStream
line = file.ReadLine
MsgBox line
Loop
file.Close
Set fso = CreateObject("Scripting.FileSystemObject")
' 覆盖写入
Set file = fso.OpenTextFile("C:\test.txt", 2, True)
file.WriteLine "New content"
file.Close
' 追加写入
Set file = fso.OpenTextFile("C:\test.txt", 8, True)
file.WriteLine "Appended line"
file.Close
Set fso = CreateObject("Scripting.FileSystemObject")
' 复制文件
fso.CopyFile "C:\source.txt", "D:\dest.txt"
' 移动文件
fso.MoveFile "C:\old.txt", "D:\new.txt"
' 删除文件
fso.DeleteFile "C:\test.txt"
' 检查文件是否存在
If fso.FileExists("C:\test.txt") Then
MsgBox "文件存在"
Else
MsgBox "文件不存在"
End If
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.GetFile("C:\test.txt")
MsgBox "文件名: " & file.Name
MsgBox "路径: " & file.Path
MsgBox "大小: " & file.Size & " bytes"
MsgBox "创建时间: " & file.DateCreated
MsgBox "修改时间: " & file.DateLastModified
Set fso = CreateObject("Scripting.FileSystemObject")
' 创建单级文件夹
fso.CreateFolder("C:\NewFolder")
' 创建多级文件夹(需要检查是否存在)
If Not fso.FolderExists("C:\Level1\Level2") Then
fso.CreateFolder("C:\Level1\Level2")
End If
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder("C:\Test")
' 列出所有文件
For Each file In folder.Files
MsgBox "文件: " & file.Name
Next
' 列出所有子文件夹
For Each subfolder In folder.SubFolders
MsgBox "子文件夹: " & subfolder.Name
Next
Set fso = CreateObject("Scripting.FileSystemObject")
' 复制文件夹
fso.CopyFolder "C:\SourceFolder", "D:\DestFolder"
' 移动文件夹
fso.MoveFolder "C:\OldFolder", "D:\NewFolder"
' 删除文件夹
fso.DeleteFolder "C:\TempFolder"
' 清空文件夹(删除所有内容)
If fso.FolderExists("C:\Temp") Then
fso.DeleteFolder "C:\Temp"
fso.CreateFolder "C:\Temp"
End If
Set fso = CreateObject("Scripting.FileSystemObject")
' 指定编码写入(UTF-8)
Set stream = CreateObject("ADODB.Stream")
stream.Type = 2 ' 文本类型
stream.Charset = "UTF-8"
stream.Open
stream.WriteText "UTF-8内容"
stream.SaveToFile "C:\utf8.txt", 2
stream.Close
' 读取不同编码文件
Set stream = CreateObject("ADODB.Stream")
stream.Type = 2
stream.Charset = "GB2312" ' 中文编码
stream.Open
stream.LoadFromFile "C:\gb2312.txt"
content = stream.ReadText
stream.Close
MsgBox content
' 二进制读取
Set stream = CreateObject("ADODB.Stream")
stream.Type = 1 ' 二进制类型
stream.Open
stream.LoadFromFile "C:\binary.dat"
binaryData = stream.Read
stream.Close
' 二进制写入
Set stream = CreateObject("ADODB.Stream")
stream.Type = 1
stream.Open
stream.Write binaryData
stream.SaveToFile "C:\output.dat", 2
stream.Close
Function FindFiles(folderPath, filePattern)
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder(folderPath)
Set files = folder.Files
Dim result()
ReDim result(0)
For Each file In files
If InStr(1, file.Name, filePattern, 1) > 0 Then
ReDim Preserve result(UBound(result) + 1)
result(UBound(result)) = file.Path
End If
Next
' 递归搜索子文件夹
For Each subfolder In folder.SubFolders
Dim subResult
subResult = FindFiles(subfolder.Path, filePattern)
If UBound(subResult) > 0 Then
For i = 1 To UBound(subResult)
ReDim Preserve result(UBound(result) + 1)
result(UBound(result)) = subResult(i)
Next
End If
Next
FindFiles = result
End Function
Sub BatchProcessFiles(folderPath, extension)
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder(folderPath)
For Each file In folder.Files
If LCase(Right(file.Name, Len(extension))) = LCase(extension) Then
' 处理每个文件
ProcessFile file.Path
End If
Next
End Sub
Sub ProcessFile(filePath)
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.OpenTextFile(filePath, 1)
content = file.ReadAll
file.Close
' 处理内容(示例:替换文本)
newContent = Replace(content, "old", "new")
Set file = fso.OpenTextFile(filePath, 2)
file.Write newContent
file.Close
End Sub
Sub WriteLog(logFile, message)
Set fso = CreateObject("Scripting.FileSystemObject")
' 确保日志文件夹存在
logFolder = fso.GetParentFolderName(logFile)
If Not fso.FolderExists(logFolder) Then
fso.CreateFolder(logFolder)
End If
timestamp = Now()
logEntry = timestamp & " - " & message
Set file = fso.OpenTextFile(logFile, 8, True)
file.WriteLine logEntry
file.Close
End Sub
' 文件备份脚本
Option Explicit
Dim fso, sourceFolder, backupFolder, dateStamp
Set fso = CreateObject("Scripting.FileSystemObject")
sourceFolder = "C:\MyDocuments"
dateStamp = Year(Now) & Right("0" & Month(Now), 2) & Right("0" & Day(Now), 2)
backupFolder = "D:\Backup\" & dateStamp
' 创建备份文件夹
If Not fso.FolderExists(backupFolder) Then
fso.CreateFolder(backupFolder)
End If
' 备份所有文件
BackupFiles sourceFolder, backupFolder
MsgBox "备份完成!"
Sub BackupFiles(src, dest)
Dim folder, file, subfolder
Set folder = fso.GetFolder(src)
' 复制文件
For Each file In folder.Files
On Error Resume Next
fso.CopyFile file.Path, dest & "\" & file.Name, True
If Err.Number <> 0 Then
WriteLog "错误: " & Err.Description & " - " & file.Path
End If
On Error GoTo 0
Next
' 递归处理子文件夹
For Each subfolder In folder.SubFolders
Dim newDest
newDest = dest & "\" & subfolder.Name
If Not fso.FolderExists(newDest) Then
fso.CreateFolder(newDest)
End If
BackupFiles subfolder.Path, newDest
Next
End Sub
Sub WriteLog(message)
Dim logFile
logFile = "C:\backup.log"
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.OpenTextFile(logFile, 8, True)
file.WriteLine Now & " - " & message
file.Close
End Sub
.vbs 文件
双击运行或通过命令行执行:cscript filename.vbs
注意:文件操作可能需要管理员权限
重要文件操作前建议先备份
这些代码涵盖了VBScript文件操作的主要功能,可以根据需要进行组合和修改。