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: