Laufwerke ausgeben - ansprechen |
|
Laufwerkseigenschaften ausgebenProbleme beim Zuweisen der Parameter:
Option Explicit
Dim s, driv, fso Const c = "C:" Set fso = Createobject("Scripting.FileSystemObject") s = "c:" 'Durch ein Zuweisung des Laufwerks per Variable wird ein Laufzeitfehler ausgeführt Set driv = fso.drives(s) 'Folgendes Funktioniert' '----------------------- 'Ein Zuweisung des Laufwerksbuchstabens als Variable und : als Konstante ist korrekt s = "c" Set driv = fso.drives(s & ":") 'ODER 'Ein Zuweisung des Laufwerksbuchstabens per Konstante ist korrekt Set driv = fso.drives("c:") 'ODER Set driv = fso.drives(c) Eigenschaften aller Laufwerke ausgebenOption Explicit
Dim WshShell, fso, FileOut, DriveList, oDrive, i, j Dim s, s1, s2, sb Set WshShell = WScript.CreateObject("WScript.Shell") Set fso = CreateObject("Scripting.FileSystemObject") Set DriveList = fso.Drives ' Protokoll in Datei schreiben Set FileOut = fso.OpenTextFile(WScript.ScriptName & ".log", 8, True) ' Datei zum Schreiben öffnen (notfals anlegen) fileOut.WriteLine(vbCRLF & now() & " Protokoll von " & WScript.ScriptName & ": ") For Each oDrive In DriveList With oDrive select Case .DriveType Case 0 : s1 = "???" Case 1 : s1 = "USB-Lw. " Case 2 : s1 = "Festpl. " Case 3 : s1 = "Netz-Lw." Case 4 : s1 = "CD-Lw. " Case 5 : s1 = "RAM-Lw. " End Select s = s & s1 & vbTab & .DriveLetter & ":" & vbTab 'c 's = s & vbTab & oDrive.rootfolder & vbTab 'c:\'s = s & vbTab & oDrive.path & vbTab 'c: If .IsReady Then s1 = .volumename sb = 0 For i = 1 To Len(s1) j = Asc(Mid(s1, i, 1)) If j > 64 AND j < 91 Then sb = sb + 1 End If Next If s1 = vbNullString Then s1 = s1 & vbtab ElseIf sb => 8 AND s1 "DISKETTE" Then ElseIf sb < 8 Then s1 = s1 & vbtab ElseIf sb < 3 AND len(s1) < 12 Then s1 = s1 & vbtab & vbtab else s1 = s1 & vbtab End If s = s & s1 & vbtab s1 = FormatNumber(.FreeSpace/1024/1024, 1) If s1 = vbNullString Then s1 = "???" s = s & "MB frei: " & s1 & vbTab & " MB Total: " s1 = FormatNumber(.TotalSize/1024/1024, 1) If s1 = vbNullString Then s1 = "???" If len(s1)< 9 Then s1 = s1 & vbtab s = s & s1 & vbTab & .filesystem & vbTab & " SN: " & .serialnumber End If End With fileOut.WriteLine(s) s = s & vbCrLf |