|
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. |
19.01.2007, 19:14 | #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. |
22.01.2007, 16:35 | #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. |
22.01.2007, 18:12 | #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 |
23.01.2007, 14:33 | #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 |