![Rank: 81](images/default/star_level3.gif) ![Rank: 81](images/default/star_level3.gif) ![Rank: 81](images/default/star_level3.gif) ![Rank: 81](images/default/star_level2.gif) ![Rank: 81](images/default/star_level1.gif)
- UID
- 1
- 帖子
- 11122
- 积分
- 7224
- 紫菀
- 102 朵
- 花瓣
- 9777 片
- 花蕊
- 1613 朵
- 野草莓
- 301 个
- 蒲公英
- 491 朵
- 社区等级
- 200 级
- 在线时间
- 5246 小时
- 注册时间
- 2006-7-9
- 蜗居何地
- 浙江台州
- 登录状态
-
当前离线
|
楼主
发表于 2007-10-7 03:04
| 只看该作者
文件和文件夹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脚本也可以在其它环境中直接调用。 |
|