![]() |
| |||||||
Alles rund um Windows: VBS 'Hello World' - Problem mit doppelter IF- BedingungWindows 7 Hilfe zu allen Windows-Betriebssystemen: Windows XP, Windows Vista, Windows 7, Windows 8(.1) und Windows 10 / Windows 11- als auch zu sämtlicher Windows-Software. Alles zu Windows 10 ist auch gerne willkommen. Bitte benenne etwaige Fehler oder Bluescreens unter Windows mit dem Wortlaut der Fehlermeldung und Fehlercode. Erste Schritte für Hilfe unter Windows. |
![]() |
| |
| | #1 | ||
![]() ![]() ![]() ![]() ![]() | Problem: VBS 'Hello World' - Problem mit doppelter IF- Bedingung Ich frickel gerade an meinem ersten (deswegen 'Hello World') VBS-Miniscript. eigentlich funktioniert alles bis auf eine Kleinigkeit. Das Script soll mir nur die mit NTFS-formatierten Platten ausgeben. objDrive.IsReady benötige ich, damit das Script nicht wegen eines Laufzeitfehlers (Floppy) abbricht. Eigentlich dachte ich, ich könnte mit objDrive.FileSystem = NTFS die Ausgabe auf die gesuchten Platten/Partitionen einschränken, aber WSH meldet Zitat:
Code:
ATTFilter const GB_FACTOR = 1073741824
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set colDrives = objFSO.Drives
For Each objDrive in colDrives
If objDrive.IsReady = True And objDrive.FileSystem = NTFS Then
Wscript.Echo "Laufwerksbuchstabe: " & objDrive.DriveLetter
Wscript.Echo "Volumenname: " & objDrive.VolumeName
Wscript.Echo "Laufwerkstyp: " & objDrive.DriveType
Wscript.Echo "Dateisystem: " & objDrive.FileSystem
Wscript.Echo "Gesamtgröße: " & FormatNumber((objDrive.TotalSize / CONV_FACTOR), 2) & " GB "
Wscript.Echo "Verfügbarer"
Wscript.Echo "Speicherplatz: " & FormatNumber((objDrive.AvailableSpace / CONV_FACTOR), 2) & " GB "
Wscript.Echo "Gerätestatus: bereit"
Wscript.Echo "Freigabename: " & objDrive.ShareName
Wscript.Echo ""
Else
Wscript.Echo "Nix HDD"
Wscript.Echo ""
End If
Next
Zitat:
__________________ When you contact tech support, a lot of people feel like they're either talking to an idiot or being treated like one. |
| | #2 |
![]() | VBS 'Hello World' - Problem mit doppelter IF- Bedingung Anleitung / Hilfe *puu* ich habe zwar auch
__________________schon ein bisschen mit diesen vb-Scripts unter win rumgefummelt, aber ich würde dir raten, dich da an VisualBasicExperten zu hängen. |
| | #3 |
| /// Helfer-Team ![]() ![]() ![]() ![]() | VBS 'Hello World' - Problem mit doppelter IF- Bedingung Details Hi,
__________________vermutlich bist Du es von anderen Programmiersprachen gewohnt, daß ein logischer Ausdruck nicht weiter ausgewertet wird, wenn die weiteren Terme nichts mehr am Gesamtergebnis ändern können (sogenannte lazy evaluation). Bei WSH ist das aber nicht der Fall, er führt auf jeden Fall den zweiten Teil aus, um das Dateisystem zu bestimmen muß er auf das Laufwerk zugreifen und schon ist es passiert. Lösung: Die Abfage in zwei if-Konstrukte teilen, so daß die Abfrage auf das Dateisystem nur erfolgt, wenn IsReady True ergeben hat. Code:
ATTFilter For Each objDrive in colDrives
If objDrive.IsReady = True Then
If obj.Drive.FileSystem = NTFS then
' your code
End If
End If
Next
Code:
ATTFilter function a1
Wscript.Echo "in a1"
a1 = False
end function
function a2
Wscript.Echo "in a2"
a2 = False
end function
if a1 and a2 then
Wscript.Echo "if taken"
else
Wscript.Echo "else taken"
end if
|
| | #4 | |
![]() ![]() ![]() ![]() ![]() | Lösung: VBS 'Hello World' - Problem mit doppelter IF- Bedingung Öhm, naja, das einzige was ich mal angefasst habe (anfassen musste) ist Turbo Pascal und das liegt so etwa 10-12 Jahre zurück. Also gewohnt bin ich gar nichts. Zitat:
![]() Gruß Marc
__________________ When you contact tech support, a lot of people feel like they're either talking to an idiot or being treated like one. |
![]() |
| Themen zu VBS 'Hello World' - Problem mit doppelter IF- Bedingung |
| benötige, code, dateisystem, daten, datenträger, doppel, doppelte, einschränken, falsch, funktioniert, google, größe, laufwerksbuchstabe, melde, meldet, microsoft, platte, problem, rechte, speicherplatz, vbs, vbscript, version, volume, volumen, windows, windows script host, world |