vbs_ファイルとフォルダ操作


      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