A fájlrendszer objektumainak kezelése az vbscript szkriptből
A fájlrendszer-objektumok WSH-n keresztüli feldolgozásának főbb jellemzői a FileSystemObject osztály használatával valósulnak meg. amely fizikailag a Scrrun könyvtárban található. dll. Általában a munka az FSO objektum létrehozásával kezdődik:
Állítsa be az fso1 = WScript.CreateObject parancsot ("Scripting.FileSystemObject")
Ezután a létrehozott objektumot különböző műveletek végrehajtására használjuk.
A leggyakrabban használt jellemzők:
Állítsa be az oDrives = fso1.Drives beállítást
Mindegyik i
MsgBox ("Drive betű:" i.DriveLetter "Lemez típusa:" i.DriveType "Disc Label" i.VolumeName "Készenlét a munkára:" i.IsReady)
További információ a Drive-objektumról - lent.
2) jegyezze fel az adott könyvtár összes alkönyvtárát (használja a GetFolder tulajdonságot, és továbbítsa a Mappa objektum képességeit):
Állítsa be a következőket: oFolders = fso1.GetFolder ("C:")
Az oSubfolders = oFolders.SubFolders beállítása
Minden oFolder In oSubFolders
strListFolders = strListFolders oFolder.Name vbCrLf
3) információt kaphat a lemez fizikai méretéről (a Drive TotalSize objektum tulajdonsága):
Állítsa be az oDrive1 = fso1.GetDrive ("C") parancsot
nSize = FormatNumber (oDrive1.TotalSize, 0)
4) információt szerezni arról, hogy mennyi szabad hely (objektum tulajdonságainak és a Drive FreeSpace AvailableSpace; FreeSpace információt jelenít meg a fizikai szabad hely, AvailableSpace - információ szabad hely áll rendelkezésre a felhasználó - alapú lemez kvóta)
Állítsa be az oDrive1 = fso1.GetDrive ("C") parancsot
nSize = FormatNumber (oDrive1.TotalSize, 0)
A mappákat ugyanúgy mozgatja és törli.
6) törölje az összes fájlt egy meghatározott névvel (például a vírusok vagy számítógépes játékok elleni küzdelem). Maga a eltávolítás egyszerű: a DeleteFile módszer ezt alkalmazza:
fso1. DeleteFile "C: \ scandisk .log", True "true" azt jelenti, hogy töröljük a csak olvasható fájlokat is
Mindazonáltal általában két további problémát kell megoldanunk:
o Biztosítson nincs futási hiba. ha probléma van a fájl törlésével (a fájl nyitva van stb.),
o csatlakozzon a kívánt könyvtárhoz
o átadja az összes könyvtárat és alkönyvtárat, törli ezt a fájlt.
Mindegyik feladat kényelmesebb megoldást nyújt különálló alfolyamatok segítségével. Az első megoldás a következő:
Hiba folytatódik Következő
Ha az Err.Number <> 0 Akkor
WScript.Echo "A fájl törlése:" sFájl
Az egyszerűség kedvéért megjelenítjük az üzenetet a felhasználónak, de az igazi munkában jobb, ha hiba esetén a rendszergazda szövegfájlba írja a protokollt (bővebben később).
A megfelelő alkönyvtárhoz való csatlakozáshoz:
Funkció GetFolder (sFolder)
Hiba folytatódik Következő
Set GetFolder = Fso1.GetFolder (sFolder)
Ha az Err.Number <> 0 Akkor
WScript.Echo "Hiba történt a mappához való csatlakozáskor:" sFolder
Az összes alkönyvtár átvezetése:
Sub RunSubFolders (objFolder)
Ha objFolder <> "\ System Volume Information" Akkor
Minden iFolder esetében az objFolder.SubFolders fájlban
A rendszer hangerő-információjának ellenőrzése - mivel a hozzáféréshez hiba történik.
Most megoldjuk a problémát:
Állítsa be az objDir = GetFolder (sDir)
Sub MainSub (objDir)
Mindegyik eFile esetében az objDir.Files fájlban
Ha LCase (eFile.Name) = LCase (sFile) Ezután
Természetesen az igazi munkában jobb, ha naplózza az összes fájlt törölni.
7) módosítsa a fájl attribútumait (például fontos fájlok elrejtése vagy csak olvasható módba állítása).
Egy meglévő fájlhoz való csatlakozáshoz a legjobb, ha egy speciális GetFile alprogramot (hasonlóan a GetFolderhöz hasonlóan az előző példában):
Hiba folytatódik Következő
Set GetFile = Fso1.GetFile (sFile)
Ha az Err.Number <> 0 Akkor
WScript.Echo ("Hiba történt a következőhöz:" sFájl
Telepítse a legegyszerűbb módszert (példánkban állítsa be a Read-Only értékét):
Állíts be gFile = GetFile ("C: \ test1.txt")
8) olvassa el az információkat egy szövegfájlból
Állítsa be a TxtStream = fso1.OpenTextFile ("\\ london1 \ c $ \ test1.txt")
Bár nem (TxtStream.atEndOfStream)
Szöveg = Szöveg TxtStream.ReadLine vbCrLf
Nagyon ajánlott nagy fájlok megnyitása olvasáshoz az Internet Explorer ablakban ugyanolyan módszerrel, mint a Navigálás.
9) írás / információ hozzáadása szövegfájlhoz. Ezt a funkciót gyakran használják - pl. A szkript előrehaladásának naplózására vagy a felhasználók számítógépeinek felmérésének eredményeinek rögzítésére. Bizonyos esetekben a fájl tovább feldolgozható - például e-mailben CDO eszközökkel (az alábbiakban), vagy az adatbázis-kiszolgálón feltett DTS segítségével.
Ez így néz ki:
Ha az Fso1.FileExists ("C: \ test1.txt") Ezután
Állítsa be a txtStreamOut = fso1.OpenTextFile ("C: \ test1.txt", 8, True)
'"2" jelentése "nyitott hozzáadás", True-write Unicode
txtStreamOut.WriteLine "1. sor"
txtStreamOut.WriteLine "1. sor"
Állítsa be a MyFile = fso1.CreateTextFile fájlt ("C: \ test1.txt")
MyFile.WriteLine "1. sor"
MyFile.WriteLine "2. sor"
WSH korlátozások a fájlrendszerrel való együttműködés során:
- A WSH alapvetően nem képes bináris fájlokkal dolgozni - csak szöveges fájlok;
- A WSH használatával nem állíthatók be engedélyek és fájlok ellenőrzése (ez WMI-eszközökkel végezhető).
A fájlrendszer számos további tulajdonsága a Resource Kit parancssori segédprogramjaival érhető el: