返回列表 回复 发帖

文件和文件夹vbs脚本大全

枚举文件夹中的所有文件
描述
返回 Scripts 文件夹中所有文件的列表。如果计算机有多个文件夹(例如
C:\Scripts 和 D:\Scripts),则文件将从这些文件夹中的每一个返回。
脚本代码
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer
& "\root\cimv2")
Set colFiles = objWMIService. _
    ExecQuery("Select * from CIM_DataFile where Path =
'\\Scripts\\'")
For Each objFile in colFiles
    Wscript.Echo objFile.Name
Next
移动文件
描述
演示脚本使用 FileSystermObject 将文件从一个位置移到另一个位置。此脚
本必须运行在本地计算机上。
脚本代码
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.MoveFile "C:\FSO\ScriptLog.log" , "D:\Archive"

通过日期查找文件夹
描述
查找在 2002 年 3 月 1 日之后创建的所有文件。要修改此脚本,您必须修改
赋给变量 dtmTargetDate 的值中的下列项:
?
2002 -- 将此项更改为目标年(如 1999)。
?
03--将此项更改为目标月(01 代表 1 月、 02代表 2月……12 代表 12月)
?
01 -- 将此项更改为目标天(01 代表该月的第一天、02 代表第二天)。
?
-420 -- 为了确保具有正确的结果,可以将此项更改为您所在的时区和格林
尼治标准时间之间的偏移量。如果您不知道此偏移量,可以使用脚本确定与格
林尼治标准时间的时区偏移量。
脚本代码
On Error Resume Next
dtmTargetDate = "20020301000000.000000-420"
strComputer = "."
Set objWMIService = GetObject _
    ("winmgmts:" & "!\\" & strComputer & "\root\cimv2")
Set colFolders = objWMIService.ExecQuery _
    ("Select * from Win32_Directory Where CreationDate >
'" & _
        dtmtargetDate & "'")
For Each objFolder in colFolders
    Wscript.Echo objFolder.Name
Next

逐个字符地读取文本文件
描述
演示脚本使用 FileSystemObject 逐个字符地读取文本文件,并分别将这些
字符显示在屏幕上。此脚本必须运行在本地计算机上。
脚本代码
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("C:\FSO\New Text
Document.txt", 1)
Do Until objFile.AtEndOfStream
    strCharacters = objFile.Read(1)
    Wscript.Echo strCharacters
Loop
识别 Shell 对象动词
描述
为 Recycle Bin 返回 Shell 对象动词(上下文菜单项)的列表。
脚本代码
Const RECYCLE_BIN = &Ha&
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.NameSpace(RECYCLE_BIN)
Set objFolderItem = objFolder.Self  
Set colVerbs = objFolderItem.Verbs
For i = 0 to colVerbs.Count - 1
    Wscript.Echo colVerbs.Item(i)
Next

生成文件名
描述
演示脚本使用 FileSystemObject 的 GetTempName 方法生成随机文件名。
此脚本必须运行在本地计算机上。
脚本代码
Set objFSO = CreateObject("Scripting.FileSystemObject")
For i = 1 to 10
    strTempFile = objFSO.GetTempName
    Wscript.Echo strTempFile
Next

创建和命名文本文件
描述
演示脚本使用 FileSystemObject 的 GetTempName 方法生成一个文件名,
然后根据该名称创建一个文件。
脚本代码
Set objFSO = CreateObject("Scripting.FileSystemObject")
strPath = "C:\FSO"
strFileName = objFSO.GetTempName
strFullName = objFSO.BuildPath(strPath, strFileName)
Set objFile = objFSO.CreateTextFile(strFullName)
objFile.Close
objFSO.DeleteFile(strFullName)

创建网络共享
描述
创建一个名为 FinanceShare 的共享文件夹,将同时连接的最大数量设置为
25,然后添加共享描述。
脚本代码
Const FILE_SHARE = 0
Const MAXIMUM_CONNECTIONS = 25
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer
& "\root\cimv2")
Set objNewShare = objWMIService.Get("Win32_Share")
errReturn = objNewShare.Create _
    ("C:\Finance", "FinanceShare", FILE_SHARE, _
        MAXIMUM_CONNECTIONS, "Public share for the Finance
group.")
Wscript.Echo errReturn

创建文本文件
描述
演示脚本创建一个新的空文本文件。此脚本必须运行在本地计算机上。
脚本代码
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.CreateTextFile("C:\FSO\ScriptLog.txt")

创建文件夹
描述
演示脚本使用 FileSystemObject 创建一个文件夹。此脚本必须运行在本地
计算机上。
脚本代码
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.CreateFolder("C:\FSO")

发布共享文件夹
描述
在 Active Directory 中发布共享文件夹,给该文件夹指派一个描述和三个
关键字。
脚本代码
Set objComputer = GetObject _
    ("
LDAP://OU=Finance, DC=fabrikam, DC=com")
Set objShare = objComputer.Create("volume",
"CN=FinanceShare")
objShare.Put "uNCName", "
[url=file://atl-dc-02/FinanceShare]\\atl-dc-02\FinanceShare[/url]"
objShare.Put "Description", "Public share for users in the
Finance group."
objShare.Put "Keywords", Array("finance", "fiscal",
"monetary")
objShare.SetInfo

在文件上执行操作
描述
使用 Shell 对象打印 C:\Logs 文件夹中的所有文件。
脚本代码
TargetFolder = "C:\Logs"
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(TargetFolder)
Set colItems = objFolder.Items
For i = 0 to colItems.Count - 1
    colItems.Item(i).InvokeVerbEx("Print")
Next

按照从下到上的顺序读取文本文件
描述
演示脚本使用 FileSystemObject 读取一个文本文件,并以相反的顺序显示
该文本文件(即从最后一行开始,以第一行结束)。
脚本代码
Dim arrFileLines()
i = 0
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("C:\FSO\ScriptLog.txt",
1)
Do Until objFile.AtEndOfStream
     Redim Preserve arrFileLines(i)
     arrFileLines(i) = objFile.ReadLine
     i = i + 1
Loop
objFile.Close
For l = Ubound(arrFileLines) to LBound(arrFileLines) Step
-1
    Wscript.Echo arrFileLines(l)
Next

创建新文件夹
描述
使用 Shell 对象创建名为 C:\Archive 的新文件夹。
脚本代码
ParentFolder = "C:\"
set objShell = CreateObject("Shell.Application")
set objFolder = objShell.NameSpace(ParentFolder)
objFolder.NewFolder "Archive"

监视文件修改
描述
任何时候修改文件 C:\Scripts\Index.vb,临时事件消费程序都会发出警
告。最好运行在 Cscript.exe 下。
脚本代码
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & _
        strComputer & "\root\cimv2")
Set colMonitoredEvents =
objWMIService.ExecNotificationQuery _
    ("SELECT * FROM __InstanceModificationEvent WITHIN 10
WHERE " _
       & "TargetInstance ISA 'CIM_DataFile' and " _
       & "TargetInstance.Name='c:\\scripts\\index.vbs'")
Do
    Set objLatestEvent = colMonitoredEvents.NextEvent
    Wscript.Echo "File: " &
objLatestEvent.TargetInstance.Name
    Wscript.Echo "New size: " &
objLatestEvent.TargetInstance.FileSize
    Wscript.Echo "Old size: " &
objLatestEvent.PreviousInstance.FileSize
Loop

监视文件删除
描述
任何时候从 C:\Scripts 文件夹删除文件,临时事件消费程序都会发出警告。
最好运行在 Cscript.exe 下。
脚本代码
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & _
        strComputer & "\root\cimv2")
Set colMonitoredEvents =
objWMIService.ExecNotificationQuery _
    ("SELECT * FROM __InstanceDeletionEvent WITHIN 10 WHERE
" _
        & "Targetinstance ISA 'CIM_DirectoryContainsFile'
and " _
            & "TargetInstance.GroupComp'Win32_Directory.Name=""c:\\\\scripts""'")
Do
    Set objLatestEvent = colMonitoredEvents.NextEvent
    Wscript.Echo
objLatestEvent.TargetInstance.PartComponent
Loop

复制文件夹
描述
演示脚本使用 FileSystemObject 将文件夹复制到新的位置。此脚本必须运
行在本地计算机上。
脚本代码
Const OverWriteFiles = True
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.CopyFolder "C:\Scripts" , "C:\FSO" , OverWriteFiles

监视文件创建
描述
任何时候在 C:\Scripts 文件夹中创建文件,临时事件消费程序就发出警告。
最好在 Cscript.exe 下运行。
脚本代码
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & _
        strComputer & "\root\cimv2")
Set colMonitoredEvents =
objWMIService.ExecNotificationQuery _
   ("SELECT * FROM __InstanceCreationEvent WITHIN 10 WHERE " _
        & "Targetinstance ISA 'CIM_DirectoryContainsFile'
and " _
            & "TargetInstance.GroupComp'Win32_Directory.Name=""c:\\\\scripts""'")
Do
    Set objLatestEvent = colMonitoredEvents.NextEvent
    Wscript.Echo
objLatestEvent.TargetInstance.PartComponent
Loop

复制文件
描述
演示脚本使用 FileSystemObject 来复制文件。此脚本必须运行在本地计算
机上。
脚本代码
Const OverwriteExisting = True
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.CopyFile "C:\FSO\ScriptLog.txt" , "D:\Archive\",
OverwriteExisting
复制文件集
描述
演示脚本使用 FileSystemObject 将文件夹中的所有 .txt 文件复制到一
个新的位置。
脚本代码
Const OverwriteExisting = True
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.CopyFile "C:\FSO\*.txt" , "D:\Archive\" ,
OverwriteExisting

解析路径名
描述
演示脚本使用 FileSystemObject 临时返回路径名信息,其中包括文件名、
文件扩展名、完整文件路径等等。此脚本必须运行在本地计算机上。
脚本代码
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.GetFile("ScriptLog.txt")
Wscript.Echo "Absolute path: " &
objFSO.GetAbsolutePathName(objFile)
Wscript.Echo "Parent folder: " &
objFSO.GetParentFolderName(objFile)
Wscript.Echo "File name: " & objFSO.GetFileName(objFile)
Wscript.Echo "Base name: " & objFSO.GetBaseName(objFile)
Wscript.Echo "Extension name: " &
objFSO.GetExtensionName(objFile)
将文本文件读入数组
描述
演示代码使用 VBScript Split 命令从逗号分隔的值文件读取一行,然后将
该行中的各个项放入一个数组。
脚本代码
Const ForReading = 1
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile _
    ("c:\scripts\servers and services.txt", ForReading)
Do Until objTextFile.AtEndOfStream
    strNextLine = objTextFile.Readline
    arrServiceList = Split(strNextLine , ",")
    Wscript.Echo "Server name: " & arrServiceList(0)
    For i = 1 to Ubound(arrServiceList)
        Wscript.Echo "Service: " & arrServiceList(i)
    Next
Loop
解压缩文件夹
描述 解压缩文件夹 C:\Scripts。
脚本代码
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer
& "\root\cimv2")
Set colFolders = objWMIService.ExecQuery _
    ("Select * from Win32_Directory where name =
'c:\\Scripts'")
For Each objFolder in colFolders
    errResults = objFolder.Uncompress
    Wscript.Echo errResults
Next
将网络共享映射到本地文件夹
描述
使用查询的 WMI Associators 返回计算机上所有网络共享的本地路径。
脚本代码
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer
& "\root\cimv2")
Set colShares = objWMIService.ExecQuery _
    ("Associators of {Win32_Share.Name='Scripts'} Where "
_
        & "AssocClass=Win32_ShareToDirectory")
For Each objFolder in colShares
    Wscript.Echo objFolder.Name
Next

将所有的网络共享映射到本地文件夹
描述
使用查询的 WMI Associators 返回名为 Scripts 的网络共享的本地路径。
脚本代码
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer
& "\root\cimv2")
Set colShares = objWMIService.ExecQuery _
    ("Select * From Win32_Share")
For Each objShare in colShares
    Set colAssociations = objWMIService.ExecQuery _
        ("Associators of {Win32_Share.Name='" &

   objShare.Name & "'} " _
            & " Where AssocClass=Win32_ShareToDirectory")
    For Each objFolder in colAssociations
        Wscript.Echo objShare.Name & vbTab & objFolder.Name
    Next
Next

枚举文件夹属性
描述
演示脚本使用 FileSystemObject 枚举文件夹的属性。此脚本必须运行在本
地计算机上。
脚本代码
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder("C:\Scripts")
Wscript.Echo "Date created: " & objFolder.DateCreated
Wscript.Echo "Date last accessed: " &
objFolder.DateLastAccessed
Wscript.Echo "Date last modified: " &
objFolder.DateLastModified
Wscript.Echo "Drive: " & objFolder.Drive
Wscript.Echo "Is root folder: " & objFolder.IsRootFolder
Wscript.Echo "Name: " & objFolder.Name
Wscript.Echo "Parent folder: " & objFolder.ParentFolder
Wscript.Echo "Path: " & objFolder.Path
Wscript.Echo "Short name: " & objFolder.ShortName
Wscript.Echo "Short path: " & objFolder.ShortPath
Wscript.Echo "Size: " & objFolder.Size
Wscript.Echo "Type: " & objFolder.Type

检验文件夹是否存在
描述
演示脚本使用 FileSystemObject 检验文件夹是否存在。如果文件夹存在,
此脚本就绑定到该文件夹。此脚本必须运行在本地计算机上。
脚本代码
Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.FolderExists("C:\FSO") Then
    Set objFolder = objFSO.GetFolder("C:\FSO")
Else
    Wscript.Echo "Folder does not exist."
End If

检验文件是否存在
描述
演示脚本使用 FileSystemObject 检验文件是否存在。此脚本必须运行在本
地计算机上。
脚本代码
Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.FileExists("C:\FSO\ScriptLog.txt") Then
    Set objFolder =
objFSO.GetFile("C:\FSO\ScriptLog.txt")
Else
    Wscript.Echo "File does not exist."
End If

枚举一组特定的文件夹
描述
返回计算机上所有隐藏文件夹的列表。
脚本代码
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer
& "\root\cimv2")
Set colFiles = objWMIService.ExecQuery _
    ("Select * from Win32_Directory Where Hidden = True")
For Each objFile in colFiles
    Wscript.Echo objFile.Name
Next

枚举文件夹中的所有文件
描述
返回 Scripts 文件夹中所有文件的列表。如果计算机有多个文件夹(例如
C:\Scripts 和 D:\Scripts),则文件将从这些文件夹中的每一个返回。
脚本代码
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer
& "\root\cimv2")
Set colFiles = objWMIService. _
    ExecQuery("Select * from CIM_DataFile where Path =
'\\Scripts\\'")
For Each objFile in colFiles
    Wscript.Echo objFile.Name
Next

枚举网络共享
描述
列出计算机上所有的共享文件夹。
脚本代码
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer
& "\root\cimv2")
Set colShares = objWMIService.ExecQuery("Select * from
Win32_Share")
For each objShare in colShares
    Wscript.Echo "AllowMaximum: " & vbTab &  
objShare.AllowMaximum   
    Wscript.Echo "Caption: " & vbTab &  objShare.Caption   
    Wscript.Echo "MaximumAllowed: " & vbTab &  
objShare.MaximumAllowed
    Wscript.Echo "Name: " & vbTab &  objShare.Name   
    Wscript.Echo "Path: " & vbTab &  objShare.Path   
    Wscript.Echo "Type: " & vbTab &  objShare.Type   
Next

检索扩展的文件属性
描述
使用 Shell 对象返回文件夹 C:\Scripts 中所有文件的扩展属性。
脚本代码
Dim arrHeaders(34)
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace("C:\Scripts")
For i = 0 to 33
    arrHeaders(i) =
objFolder.GetDetailsOf(objFolder.Items, i)
Next

For Each strFileName in objFolder.Items
    For i = 0 to 33
        Wscript.echo i & vbtab & arrHeaders(i) _
            & ": " & objFolder.GetDetailsOf(strFileName, i)
    Next
Next

检索文件版本信息
描述
演示脚本使用 FileSystemObject 检索 .dll 文件的版本。此脚本必须运行
在本地计算机上。
脚本代码
Set objFSO = CreateObject("Scripting.FileSystemObject")
Wscript.Echo
objFSO.GetFileVersion("c:\windows\system32\scrrun.dll")

枚举已发布共享
描述
在 Active Directory 中枚举所有已经发布的共享文件夹。
脚本代码
Const ADS_SCOPE_SUBTREE = 2
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand =   CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCOmmand.ActiveConnection = objConnection
objCommand.CommandText = "Select Name, unCName, ManagedBy
from " _
    & "'LDAP://DC=Fabrikam,DC=com' where
objectClass='volume'"

objCommand.Properties("Timeout") = 30
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
objCommand.Properties("Cache Results") = False
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst
Do Until objRecordSet.EOF
    Wscript.Echo "Share Name: " &
objRecordSet.Fields("Name").Value
    Wscript.Echo "UNC Name: " &
objRecordSet.Fields("uNCName").Value
    Wscript.Echo "Managed By: " &
objRecordSet.Fields("ManagedBy").Value
    objRecordSet.MoveNext
Loop

枚举文件属性
描述
演示脚本使用 FileSystemObject 枚举文件属性。此脚本必须运行在本地计
算机上。
脚本代码
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile =
objFSO.GetFile("c:\windows\system32\scrrun.dll")
Wscript.Echo "Date created: " & objFile.DateCreated
Wscript.Echo "Date last accessed: " &
objFile.DateLastAccessed
Wscript.Echo "Date last modified: " &
objFile.DateLastModified

Wscript.Echo "Drive: " & objFile.Drive
Wscript.Echo "Name: " & objFile.Name
Wscript.Echo "Parent folder: " & objFile.ParentFolder
Wscript.Echo "Path: " & objFile.Path
Wscript.Echo "Short name: " & objFile.ShortName
Wscript.Echo "Short path: " & objFile.ShortPath
Wscript.Echo "Size: " & objFile.Size
Wscript.Echo "Type: " & objFile.Type
枚举文件夹属性
描述
演示脚本使用 FileSystemObject 来枚举文件夹属性。此脚本必须运行在本
地计算机上。
脚本代码
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder("C:\FSO")
If objFolder.Attributes AND 2 Then
    Wscript.Echo "Hidden folder."
End If   
If objFolder.Attributes AND 4 Then
    Wscript.Echo "System folder."
End If   
If objFolder.Attributes AND 16 Then
    Wscript.Echo "Folder."
End If  
If objFolder.Attributes AND 32 Then
    Wscript.Echo "Archive bit set."
End If
If objFolder.Attributes AND 2048 Then
    Wscript.Echo "Compressed folder."
End If
枚举特定的文件夹
描述
使用 Shell 对象返回到 My Pictures 文件夹的路径。
脚本代码
Const MY_PICTURES = &H27&
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(MY_PICTURES)
Set objFolderItem = objFolder.Self  
Wscript.Echo objFolderItem.Name & ": " &
objFolderItem.Path

枚举一组特定的文件
描述
返回所有大于 1,000,000 字节的文件的列表。
脚本代码
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer
& "\root\cimv2")
Set colFiles = objWMIService. _
    ExecQuery("Select * from CIM_DataFile where FileSize >
1000000")
For Each objFile in colFiles
    Wscript.Echo objFile.Name & " -- " & objFile.FileSize
Next

枚举计算机上的所有文件夹
描述
返回计算机所有文件夹的列表。这可能会花 15 分钟或更多的时间完成,这取决
于计算机上文件夹的数量。
脚本代码
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer
& "\root\cimv2")
Set colFolders = objWMIService.ExecQuery("Select * from
Win32_Directory")
For Each objFolder in colFolders
    Wscript.Echo objFolder.Name
Next

枚举计算机上的所有文件
描述
枚举计算机上的所有文件。这基本上是一个演示脚本,如果实际运行,它可能会
花一个小时或更多的时间完成,这取决于计算机上的文件的数量。取决于文件的
数量和可用的内存,此脚本在完成前可能失败。
脚本代码
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer
& "\root\cimv2")
Set colFiles = objWMIService.ExecQuery _
    ("Select * from CIM_Datafile")
For Each objFile in colFiles
    Wscript.Echo objFile.Name
Next

枚举管理工具
描述
使用 Shell 对象枚举安装在计算机上的所有 Administrative Tool。
脚本代码
Const ADMINISTRATIVE_TOOLS = &H2f&
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(ADMINISTRATIVE_TOOLS)
Set objTools = objFolder.Items
For i = 0 to objTools.Count - 1
    Wscript.Echo objTools.Item(i)
Next

枚举文件夹的子文件夹
描述
使用查询的 WMI Associators 列出文件夹 C:\Scripts 的所有子文件夹。
脚本代码
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer
& "\root\cimv2")
Set colSubfolders = objWMIService.ExecQuery _
    ("Associators of {Win32_Directory.Name='c:\scripts'}
" _
        & "Where AssocClass = Win32_Subdirectory " _
            & "ResultRole = PartComponent")
For Each objFolder in colSubfolders
    Wscript.Echo objFolder.Name
Next

检索文件的摘要信息
描述
使用 Shell 的 Application 对象检索一个文件夹中所有文件的文件名。
脚本代码
Const FILE_NAME = 0
Set objShell = CreateObject ("Shell.Application")
Set objFolder = objShell.Namespace ("C:\Scripts")
For Each strFileName in objFolder.Items
    Wscript.Echo "File name: " & objFolder.GetDetailsOf _
        (strFileName, FILE_NAME)
Next

检索文件的详细摘要信息
描述
使用 Shell 的 Application 对象检索文件夹中所有文件的详细摘要信息
(其中包括名称、大小、所有者和文件属性)。
脚本代码
Set objShell = CreateObject ("Shell.Application")
Set objFolder = objShell.Namespace ("C:\Scripts")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Dim arrHeaders(13)
For i = 0 to 13
    arrHeaders(i) = objFolder.GetDetailsOf
(objFolder.Items, i)
Next
For Each strFileName in objFolder.Items
    For i = 0 to 13
        If i <> 9 then
            Wscript.echo arrHeaders(i) _
              & ": " & objFolder.GetDetailsOf (strFileName, i)
        End If
    Next
    Wscript.Echo
Next
使用 WMI 移动文件夹
描述
使用 WMI 将文件夹 C:\Scripts 移到
C:\Admins\Documents\Archive\VBScript。
脚本代码
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer
& "\root\cimv2")
Set colFolders = objWMIService.ExecQuery _
    ("Select * from Win32_Directory where name =
'c:\\Scripts'")
For Each objFolder in colFolders
    errResults =
objFolder.Rename("C:\Admins\Documents\Archive\VBScript")
    Wscript.Echo errResults
Next

使用 WMI 复制文件夹
描述
使用 WMI 将文件夹 C:\Scripts 复制到 D:\Archive。
脚本代码
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer
& "\root\cimv2")
Set colFolders = objWMIService.ExecQuery( _
    "Select * from Win32_Directory where Name =
'c:\\Scripts'")

For Each objFolder in colFolders
    errResults  = objFolder.Copy("D:\Archive")
    Wscript.Echo errResults
Next
使用 Shell 对象移动文件夹
描述
使用 Shell 对象将文件夹 C:\Scripts 移到 D:\Archives。在移动文件夹
时显示复制文件进展。
脚本代码
Const FOF_CREATEPROGRESSDLG = &H0&
TargetFolder = "D:\Archive"
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.NameSpace(TargetFolder)
objFolder.MoveHere "C:\Scripts", FOF_CREATEPROGRESSDLG

使用 Shell 对象复制文件夹
描述
使用 Shell 对象将文件夹 C:\Scripts 复制到 D:\Archives。当文件夹正
在复制时显示复制文件进展对话框。
脚本代码
Const FOF_CREATEPROGRESSDLG = &H0&
ParentFolder = "D:\Archive"
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.NameSpace(ParentFolder)
objFolder.CopyHere "C:\Scripts", FOF_CREATEPROGRESSDLG

删除文件夹
描述
演示脚本使用 FileSystemObject 删除文件夹。此脚本必须运行在本地计算
机上。
脚本代码
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.DeleteFolder("C:\FSO")

检索文件夹属性
描述
列出文件夹 C:\Scripts 的属性。
脚本代码
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer
& "\root\cimv2")
Set colFolders = objWMIService. _
    ExecQuery("Select * from Win32_Directory where name =
'c:\\Scripts'")
For Each objFolder in colFolders
    Wscript.Echo "Archive: " & objFolder.Archive
    Wscript.Echo "Caption: " & objFolder.Caption
    Wscript.Echo "Compressed: " & objFolder.Compressed
    Wscript.Echo "Compression method: " &
objFolder.CompressionMethod
    Wscript.Echo "Creation date: " &
objFolder.CreationDate
    Wscript.Echo "Encrypted: " & objFolder.Encrypted
    Wscript.Echo "Encryption method: " &
objFolder.EncryptionMethod
    Wscript.Echo "Hidden: " & objFolder.Hidden
    Wscript.Echo "In use count: " & objFolder.InUseCount
    Wscript.Echo "Last accessed: " &

objFolder.LastAccessed
    Wscript.Echo "Last modified: " &
objFolder.LastModified
    Wscript.Echo "Name: " & objFolder.Name
    Wscript.Echo "Path: " & objFolder.Path
    Wscript.Echo "Readable: " & objFolder.Readable
    Wscript.Echo "System: " & objFolder.System
    Wscript.Echo "Writeable: " & objFolder.Writeable
Next
删除文件夹中的所有文件
描述
演示脚本删除文件夹中的所有文件。此脚本必须运行在本地计算机中。
脚本代码
Const DeleteReadOnly = True
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.DeleteFile("C:\FSO\*.txt"), DeleteReadOnly
删除网络共享
描述
停止共享名为 FinanceShare 的共享文件夹。这不会从本地硬盘驱动器中删除
文件夹,而只是使其不能通过网络进行使用。
脚本代码
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer
& "\root\cimv2")
Set colShares = objWMIService.ExecQuery _
    ("Select * from Win32_Share Where Name =
'FinanceShare'")
For Each objShare in colShares
    objShare.Delete
Next
删除已发布文件夹
描述
从 Active Directory 中删除名为 FinanceShare 的已发布文件夹。这不
会删除共享本身,而只是从 Active Directory 删除它。
脚本代码
Set objContainer = GetObject("
LDAP://CN=FinanceShare, " _
    & "OU=Finance, DC=fabrikam, DC=com")
objContainer.DeleteObject (0)

检索文件属性
描述
列出文件 C:\Scripts\Adsi.vbs 的属性。
脚本代码
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer
& "\root\cimv2")
Set colFiles = objWMIService.ExecQuery _
    ("Select * from CIM_Datafile Where name =
'c:\\Scripts\\Adsi.vbs'")
For Each objFile in colFiles
    Wscript.Echo "Access mask: " & objFile.AccessMask
    Wscript.Echo "Archive: " & objFile.Archive
    Wscript.Echo "Compressed: " & objFile.Compressed
    Wscript.Echo "Compression method: " &
objFile.CompressionMethod
    Wscript.Echo "Creation date: " & objFile.CreationDate
    Wscript.Echo "Computer system name: " & objFile.CSName
    Wscript.Echo "Drive: " & objFile.Drive
    Wscript.Echo "8.3 file name: " &

objFile.EightDotThreeFileName
    Wscript.Echo "Encrypted: " & objFile.Encrypted
    Wscript.Echo "Encryption method: " &
objFile.EncryptionMethod
    Wscript.Echo "Extension: " & objFile.Extension
    Wscript.Echo "File name: " & objFile.FileName
    Wscript.Echo "File size: " & objFile.FileSize
    Wscript.Echo "File type: " & objFile.FileType
    Wscript.Echo "File system name: " & objFile.FSName
    Wscript.Echo "Hidden: " & objFile.Hidden
    Wscript.Echo "Last accessed: " & objFile.LastAccessed
    Wscript.Echo "Last modified: " & objFile.LastModified
    Wscript.Echo "Manufacturer: " & objFile.Manufacturer
    Wscript.Echo "Name: " & objFile.Name
    Wscript.Echo "Path: " & objFile.Path
    Wscript.Echo "Readable: " & objFile.Readable
    Wscript.Echo "System: " & objFile.System
    Wscript.Echo "Version: " & objFile.Version
    Wscript.Echo "Writeable: " & objFile.Writeable
Next

删除文件夹
描述
删除文件夹 C:\Scripts。
脚本代码
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer
& "\root\cimv2")

Set colFolders = objWMIService.ExecQuery _
    ("Select * from Win32_Directory where Name =
'c:\\Scripts'")
For Each objFolder in colFolders
    errResults = objFolder.Delete
    Wscript.Echo errResults
Next

删除文件
描述
演示脚本使用 FileSystemObject 删除文件。此脚本必须运行在本地计算机
上。
脚本代码
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.DeleteFile("C:\FSO\ScriptLog.txt")

将数据写入文本文件
描述
演示脚本检索安装在计算机上的所有服务的状态,然后将服务名称和状态保存到
一个文本文件。
脚本代码
Const ForAppending = 8
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile _
    ("C:\Scripts\Service_Status.txt", ForAppending, True)
Set colServices = GetObject("winmgmts:").ExecQuery _
    ("SELECT * FROM Win32_Service")
For Each objService in colServices

    objTextFile.WriteLine(objService.DisplayName & vbTab
& objService.State)
Next
objTextFile.Close

搜索已发布文件夹
描述
搜索 Active Directory 以查找任何具有关键字 finance 的共享文件夹。
脚本代码
On Error Resume Next
Const ADS_SCOPE_SUBTREE = 2
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand =   CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCOmmand.ActiveConnection = objConnection
objCommand.CommandText = "Select Name, unCName, ManagedBy
from "
    & "'LDAP://DC=Reskit,DC=com'" _
        & " where objectClass='volume' and Keywords =
'finance*'"
objCommand.Properties("Timeout") = 30
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
objCommand.Properties("Cache Results") = False
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst
Do Until objRecordSet.EOF
    Wscript.Echo "Share Name: " &

objRecordSet.Fields("Name").Value
    Wscript.Echo "UNC Name: " &
objRecordSet.Fields("uNCName").Value
    Wscript.Echo "Managed By: " &
objRecordSet.Fields("ManagedBy").Value
    objRecordSet.MoveNext
Loop

使用递归枚举子文件夹
描述
演示脚本使用 FileSystemObject 以递归方式列出一个文件夹中的所有字文
件夹(以及它们的子文件夹)。
脚本代码
Set FSO = CreateObject("Scripting.FileSystemObject")
ShowSubfolders FSO.GetFolder("C:\Scripts")
Sub ShowSubFolders(Folder)
    For Each Subfolder in Folder.SubFolders
        Wscript.Echo Subfolder.Path
        ShowSubFolders Subfolder
    Next
End Sub

异步枚举文件
描述
使用异步查询枚举计算机上的所有文件。这主要是一个演示脚本;如果实际运行,
它可能要花一个小时或更多的时间才能得以完成,这取决于计算机上文件的数
目。
脚本代码
Const POPUP_DURATION = 120
Const OK_BUTTON = 0
Set objWSHShell = Wscript.CreateObject("Wscript.Shell")
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer
& "\root\cimv2")
Set objSink =
WScript.CreateObject("WbemScripting.SWbemSink","SINK_")
objWMIService.ExecQueryAsync objSink, "Select * from
CIM_DataFile"
objPopup = objWshShell.Popup("Starting event retrieval",
_
    POPUP_DURATION, "Event Retrieval", OK_BUTTON)
Sub SINK_OnObjectReady(objEvent, objAsyncContext)
    Wscript.Echo objEvent.Name
End Sub

移动一组文件
描述
演示脚本使用 FileSystemObject 将文件夹中的所有文件都移到一个新的位
置。此脚本必须运行在本地计算机中。
脚本代码
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.MoveFile "C:\FSO\*.txt" , "D:\Archive\"

移动文件夹
描述
演示脚本使用 FileSystermObject 将文件夹从一个位置移动到另一个位置。
此脚本必须运行在本地计算机上。
脚本代码
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.MoveFolder "C:\Scripts" , "
[url=file://helpdesk/management]\\helpdesk\management[/url]"
移动文件
描述
将所有的 Windows Media (.wma) 文件移到文件夹 C:\Media Archive
中。
脚本代码
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer
& "\root\cimv2")
Set colFiles = objWMIService. _
    ExecQuery("Select * from CIM_DataFile where Extension
= 'wma'")
For Each objFile in colFiles
    strCopy = "C:\Media Archive\" & objFile.FileName _
        & "." & objFile.Extension
    objFile.Copy(strCopy)
    objFile.Delete
Next

压缩文件夹
描述
压缩文件夹 C:\Scripts。
脚本代码
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer
& "\root\cimv2")
Set colFolders = objWMIService.ExecQuery _
    ("Select * from Win32_Directory where name =
'c:\\Scripts'")
For Each objFolder in colFolders
    errResults = objFolder.Compress
    Wscript.Echo errResults
Next

修改文件属性
描述
演示脚本查看一个文件是否为只读文件,如果不是,就将其标记为只读。此脚本
必须运行在本地计算机上。
脚本代码
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.GetFile("C:\FSO\TestScript.vbs")
If objFile.Attributes = objFile.Attributes AND 1 Then
    objFile.Attributes = objFile.Attributes XOR 1
End If

更改文件扩展名
描述
将 C:\Scripts 文件夹中的所有 .log 文件的文件扩展名更改为 .txt。
脚本代码
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer
& "\root\cimv2")
Set FileList = objWMIService.ExecQuery _
    ("ASSOCIATORS OF {Win32_Directory.Name='c:\Scripts'}
Where " _
        & "ResultClass = CIM_DataFile")
For Each objFile In FileList
    If objFile.Extension = "log" Then
        strNewName = objFile.Drive & objFile.Path & _
            objFile.FileName & "." & "txt"
        errResult = objFile.Rename(strNewName)
        Wscript.Echo errResult
    End If
Next

更改文件夹属性
描述
演示脚本使用 FileSystemObject 检查文件夹是否隐藏,如果没有隐藏,就
隐藏它。此脚本必须运行在本地计算机上。
脚本代码
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder("C:\FSO")
If objFolder.Attributes = objFolder.Attributes AND 2 Then
    objFolder.Attributes = objFolder.Attributes XOR 2
End If


修改网络共享
描述
访问名为 FinanceShare 的共享文件夹,将同时连接的最大数目更改为 50,
并且提供新的共享描述。
脚本代码
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer
& "\root\cimv2")
Set colShares = objWMIService.ExecQuery _
    ("Select * from Win32_Share Where Name =
'FinanceShare'")
For Each objShare in colShares
    errReturn = objShare.SetShareInfo(50, _
        "Public share for HR administrators and the Finance
Group.")
Next
Wscript.Echo errReturn
使用文件夹对话框的浏览
描述
使用 Shell 对象显示文件夹对话框的浏览。在选中文件夹之后,此脚本会报告
该文件夹是否是只读的。
脚本代码
Const WINDOW_HANDLE = 0
Const NO_OPTIONS = 0
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder _
    (WINDOW_HANDLE, "Select a folder:", NO_OPTIONS,
"C:\Scripts")

Set objFolderItem = objFolder.Self
objPath = objFolderItem.Path
objPath = Replace(objPath, "\", "\\")
strComputer = "."
Set objWMIService = GetObject _
    ("winmgmts:" & "!\\" & strComputer & "\root\cimv2")
Set colFiles = objWMIService.ExecQuery _
    ("Select * from Win32_Directory where name = '" & objPath
& "'")
For Each objFile in colFiles
    Wscript.Echo "Readable: " & objFile.Readable
Next

按照日期枚举文件夹
描述
列出计算机上在 3/1/2002 之后创建的文件夹。此脚本需要 Windows XP 或
Windows .NT Server。
脚本代码
Const LOCAL_TIME = True
Set dtmTargetDate =
CreateObject("WbemScripting.SWbemDateTime")
Set dtmConvertedDate =
CreateObject("WbemScripting.SWbemDateTime")
dtmTargetDate.SetVarDate "3/1/2002", LOCAL_TIME
strComputer = "."
Set objWMIService = GetObject _
    ("winmgmts:" & "!\\" & strComputer & "\root\cimv2")
Set colFolders = objWMIService.ExecQuery _
    ("Select * from Win32_Directory Where " _
        & "CreationDate > '" & dtmTargetDate & "'")

For each objFolder in colFolders
    dtmConvertedDate.Value = objFolder.CreationDate
    Wscript.Echo objFolder.Name & VbTab & _
        dtmConvertedDate.GetVarDate(LOCAL_TIME)
Next

在读取文件之前检查文件大小
描述
演示脚本在尝试读取文本文件之前使用 FileSystemObject 确保其为非空。
此脚本必须运行在本地计算机上。
脚本代码
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.GetFile("C:\Windows\Netlogon.log")
If objFile.Size > 0 Then
    Set objReadFile =
objFSO.OpenTextFile("C:\Windows\Netlogon.log", 1)
    strContents = objReadFile.ReadAll
    Wscript.Echo strContents
    objReadFile.Close
Else
    Wscript.Echo "The file is empty."
End If

重命名文件夹
描述
演示脚本使用 FileSystemObject 重命名一个文件夹。此脚本必须运行在本
地计算机上。
脚本代码
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.MoveFolder "C:\FSO\Samples" , "C:\FSO\Scripts"

在 Queries 中使用 Wildcards
描述
返回所有名称以符号 (~) 开头的文件的列表。此脚本只运行在 Windows XP
或 Windows .NET Server 下。
脚本代码
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & _
        strComputer & "\root\cimv2")
Set colFiles = objWMIService.ExecQuery _
    ("Select * from CIM_DataFile where FileName Like '%~%'")
For Each objFile in colFiles
    Wscript.Echo objFile.Name
Next

在 Folder Query 中使用 Wildcards
描述
返回所有路径以 C:\S 开头的文件夹的列表。此脚本只运行在 Windows XP 或
Windows Server 2003 下。
脚本代码
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer
& "\root\cimv2")
Set colFolders = objWMIService.ExecQuery _
    ("Select * from Win32_Directory where Name Like
'%c:\\S%'")
For Each objFolder in colFolders
    Wscript.Echo "Name: " & objFolder.Name
Next

重命名文件
描述
将文件 C:\Scripts\Toggle_Service.vbs 重命名为
C:\Scripts\Toggle_Service.old。
脚本代码
strComputer = "."
Set objWMIService = GetObject _
    ("winmgmts:" & "!\\" & strComputer & "\root\cimv2")
Set colFiles = objWMIService.ExecQuery _
    ("Select * from Cim_Datafile where Name = " _
        & "'c:\\scripts\\toggle_service.vbs'")
For Each objFile in colFiles
    errResult =
objFile.Rename("c:\scripts\toggle_service.old")
    Wscript.Echo errResult
Next


重命名文件夹
描述
将文件夹 C:\Scripts重命名为 C:\Repository。
脚本代码
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer
& "\root\cimv2")
Set colFolders = objWMIService.ExecQuery _
    ("Select * from Win32_Directory where name =
'c:\\Scripts'")
For Each objFolder in colFolders
    errResults = objFolder.Rename("C:\Script Repository")
    Wscript.Echo errResults
Next


重命名文件
描述
演示脚本使用 FileSystemObject 冲命名一个文件。此脚本必须运行在本地
计算机上 。
脚本代码
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.MoveFile "C:\FSO\ScriptLog.txt" ,
"C:\FSO\BackupLog.txt"

隐藏窗口运行批处理程序:  

------------------------------------------------------------  
CreateObject("WScript.Shell").Run "cmd /c 批处理名.bat",0

------------------------------------------------------------  

将水平线中代码拷贝到记事本中,保存为"runbat.vbs"或者其它的名字(扩展名必须是.vbs),保存到批处理文件同一文件夹中(也可在批处理名前面加上路径,如C:\ABC.bat,这样不放在同一文件夹中也可以执行),然后点击运行生成的脚本runbat.vbs,即可隐藏运行指定的批处理程序。这个vbs脚本也可以在其它环境中直接调用。
简单就好!
看不懂
好长
不懂的乃
返回列表