Principalele caracteristici ale colaborării cu obiecte de sistem de fișiere prin WSH sunt implementate utilizând clasa FileSystemObject. care se află fizic în biblioteca Scrrun. dll. De obicei, lucrarea începe cu crearea obiectului FSO:
Setați fso1 = WScript.CreateObject ("Scripting.FileSystemObject")
Apoi, utilizăm obiectul creat pentru a efectua diverse operații.
Caracteristicile cele mai frecvent utilizate:
Setați oDrives = fso1.Drives
Pentru fiecare Înăuntru oDrives
MsgBox ("Scrisoarea de unitate:" i.DriveLetter "Tip disc:" i.DriveType "Disc Label" i.VolumeName "Pregătirea pentru muncă:" i.IsReady)
Mai multe despre obiectul Drive - de mai jos.
2) obțineți o listă cu toate subdirectoarele din directorul dat (utilizați proprietatea GetFolder și continuați capabilitățile obiectului Folder):
Setați oFoldere = fso1.GetFolder ("C:")
Setați oSubfolders = oFolders.SubFolders
Pentru fiecare oFolder în subdirectoarele
strListFolders = strListFolders oFolder.Name vbCrLf
3) obțineți informații despre dimensiunea fizică a discului (proprietatea obiectului Drive TotalSize):
Setați oDrive1 = fso1.GetDrive ("C")
nSize = FormatNumber (oDrive1.TotalSize, 0)
4) pentru a obține informații cu privire la cantitatea de spațiu liber (proprietăți obiect și de unitate Freespace AvailableSpace; Freespace afișează informații despre spațiul liber fizic, AvailableSpace - informații despre spațiul liber disponibil pentru utilizator - pe cota de disc)
Setați oDrive1 = fso1.GetDrive ("C")
nSize = FormatNumber (oDrive1.TotalSize, 0)
Mută și șterge dosarele în același mod.
6) ștergeți toate fișierele cu un anumit nume (de exemplu, combaterea virușilor sau a jucăriilor pe calculator). Înlăturarea în sine este simplă: metoda DeleteFile este folosită pentru a face acest lucru:
fso1. DeleteFile "C :. \ Scandisk log", trueoznachaet adevărat“, care elimina inclusiv onlyfayly blocate pentru editare
Cu toate acestea, de obicei, trebuie să rezolvăm încă două probleme:
o Asigurați-vă că nu există o eroare de execuție. dacă există o problemă cu ștergerea fișierului (fișierul este deschis etc.)
o conectați la directorul dorit
o trece prin toate directoarele și subdirectoarele, ștergând acest fișier.
Fiecare dintre aceste sarcini este mai ușor de rezolvat cu ajutorul unor subprocese separate. Primul este rezolvat după cum urmează:
La reluarea erorii următoare
Dacă Err.Number <> Atunci
WScript.Echo "Eroare la ștergerea fișierului:" sFile
Pentru simplificare, afișăm mesajul utilizatorului, dar în realitate este mai bine să scrieți protocolul într-un fișier text pentru administrator în cazul unei erori (mai multe despre acest lucru mai târziu).
Pentru a vă conecta la subdirectorul corespunzător:
Funcția GetFolder (sFolder)
La reluarea erorii următoare
Setați GetFolder = Fso1.GetFolder (sFolder)
Dacă Err.Number <> Atunci
WScript.Echo "Eroare la conectarea la folder:" sFolder
Pentru a trece prin toate subdirectoarele:
SubFoldSubFolders (objFolder)
Dacă objFolder <> "\ System Volume Information" Apoi
Pentru fiecare iFolder în folderul objFolder.Sub
Verificarea informațiilor despre volumul sistemului - deoarece atunci când accesați, apare o eroare.
Acum ne rezolvăm problema:
Setați objDir = GetFolder (sDir)
Sub MainSub (objDir)
Pentru fiecare eFile în OBDDir.Files
Dacă LCase (eFile.Name) = LCase (sFile) Apoi
Desigur, în activitatea reală, este mai bine să vă logați ștergeți toate fișierele.
7) modificați atributele fișierului (de exemplu, ascundeți fișierele importante sau setați-le la modul numai pentru citire).
Pentru a vă conecta la un fișier existent, este mai bine să utilizați o subrutină GetFile specială (similară cu GetFolder în exemplul anterior):
La reluarea erorii următoare
Setați GetFile = Fso1.GetFile (sFile)
Dacă Err.Number <> Atunci
WScript.Echo ("Eroare la conectarea la:" sFile
Instalați calea cea mai ușoară (în exemplul nostru, setați valoarea Numai pentru citire):
Setați gFile = GetFile ("C: \ test1.txt")
8) citi informații dintr-un fișier text
Set TxtStream = fso1.OpenTextFile ( "\\ london1 \ c $ \ test1.txt")
În timp ce nu (TxtStream.atEndOfStream)
Text = Text TxtStream.ReadLine vbCrlf
Este recomandat să deschideți fișiere mari pentru citire în fereastra Internet Explorer folosind aceeași metodă ca Navigare.
9) scrieți / adăugați informații într-un fișier text. Această caracteristică este utilizată foarte des - de exemplu, pentru înregistrarea progresului unui script sau pentru înregistrarea rezultatelor unui studiu al computerelor utilizatorilor. În unele situații, fișierul poate fi procesat mai departe - de exemplu, trimiteți-l prin e-mail prin mijloace CDO (despre acest lucru în modulele următoare) sau prin intermediul DTS pus pe serverul bazei de date.
Se pare ca aceasta:
Dacă Fso1.FileExists ("C: \ test1.txt") Apoi
Set txtStreamOut = fso1.OpenTextFile ( "C: \ test1.txt", 8, Adevărat)
"2" înseamnă "deschis pentru a adăuga", True-write la Unicode
txtStreamOut.WriteLine "Linia 1"
txtStreamOut.WriteLine "Linia 1"
Setați MyFile = fso1.CreateTextFile ("C: \ test1.txt")
MyFile.WriteLine "Linia 1"
MyFile.WriteLine "Linia 2"
Limitări WSH la lucrul cu sistemul de fișiere:
- WSH nu poate funcționa cu fișiere binare - numai fișiere text;
- Cu WSH, nu puteți configura permisiunile și auditul pentru fișiere (acest lucru se poate face cu ajutorul instrumentelor WMI).
Multe caracteristici suplimentare de lucru în sistemul de fișiere pot fi obținute cu ajutorul utilitarelor de linie de comandă din Resource Kit: