Zurück   Trojaner-Board > Web/PC > Alles rund um Windows

Alles rund um Windows: VBS 'Hello World' - Problem mit doppelter IF- Bedingung

Windows 7 Hilfe zu allen Windows-Betriebssystemen: Windows XP, Windows Vista, Windows 7, Windows 8(.1) und Windows 10 - 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.

Antwort
Alt 19.01.2007, 18:14   #1
MightyMarc
 
VBS 'Hello World' - Problem mit doppelter IF- Bedingung - Standard

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:
ntfs.vbs(5, 5) Laufzeitfehler in Microsoft VBScript: Der Datenträger ist nicht bereit.
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
         
Ohne And objDrive.FileSystem = NTFS funktioniert es wunderbar. Am Gerätestatus kann es wohl kaum liegen.

Zitat:
Microsoft (R) Windows Script Host, Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. Alle Rechte vorbehalten.

Nix HDD

Laufwerksbuchstabe: C
Volumenname:
Laufwerkstyp: 2
Dateisystem: NTFS
GesamtgrӇe: 20.02 GB
Verfgbarer
Speicherplatz: 8.39 GB
Ger„testatus: bereit
Freigabename:

Laufwerksbuchstabe: E
Volumenname: Musik
Laufwerkstyp: 2
Dateisystem: NTFS
GesamtgrӇe: 48.54 GB
Verfgbarer
Speicherplatz: 6.95 GB
Ger„testatus: bereit
Freigabename:

Laufwerksbuchstabe: I
Volumenname: Daten
Laufwerkstyp: 2
Dateisystem: NTFS
GesamtgrӇe: 63.47 GB
Verfgbarer
Speicherplatz: 11.64 GB
Ger„testatus: bereit
Freigabename:

Laufwerksbuchstabe: J
Volumenname: Volume
Laufwerkstyp: 2
Dateisystem: NTFS
GesamtgrӇe: 8.00 GB
Verfgbarer
Speicherplatz: 4.35 GB
Ger„testatus: bereit
Freigabename:

Laufwerksbuchstabe: L
Volumenname: TheFrozenThrone
Laufwerkstyp: 4
Dateisystem: CDFS
GesamtgrӇe: 0.62 GB
Verfgbarer
Speicherplatz: 0.00 GB
Ger„testatus: bereit
Freigabename:

Nix HDD
Laut Herrn Google sollte die doppelte Bedingung mit And funktionieren. Was hab ich falsch gemacht?
__________________
When you contact tech support, a lot of people feel like they're either talking to an idiot or being treated like one.

Alt 22.01.2007, 15:35   #2
Cleriker
 
VBS 'Hello World' - Problem mit doppelter IF- Bedingung - Standard

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.
__________________


Alt 22.01.2007, 17:12   #3
KarlKarl
/// Helfer-Team
 
VBS 'Hello World' - Problem mit doppelter IF- Bedingung - Standard

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
         
Nachvollziehen kannst Du das mit dem folgenden Beispiel:
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
         
Gruß, Karl
__________________

Alt 23.01.2007, 13:33   #4
MightyMarc
 
VBS 'Hello World' - Problem mit doppelter IF- Bedingung - Standard

Lösung: VBS 'Hello World' - Problem mit doppelter IF- Bedingung



Zitat:
Zitat von KarlKarl Beitrag anzeigen
Hi,
vermutlich bist Du es von anderen Programmiersprachen gewohnt, ...
Ö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:
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.
Genau das war der Knackpunkt. Muchas Gracias. Jetzt weiss ich ja, wen ich bei weiteren Problemen kontaktieren kann

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.

Antwort

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



Ähnliche Themen: VBS 'Hello World' - Problem mit doppelter IF- Bedingung


  1. Doppelter Firefox?
    Diskussionsforum - 28.11.2014 (7)
  2. world.catchdock.eu entfernen
    Anleitungen, FAQs & Links - 27.05.2014 (2)
  3. Doppelter Trojan.SpyEyes-Fund nach Scan mit Malwarebytes Anti-Malware
    Log-Analyse und Auswertung - 19.03.2014 (11)
  4. Werbe-Pop-ups (World of Tanks)
    Plagegeister aller Art und deren Bekämpfung - 03.08.2013 (23)
  5. Popups von World of Tanks..
    Plagegeister aller Art und deren Bekämpfung - 29.06.2013 (1)
  6. Accountklau in World-of-Warcraft
    Nachrichten - 25.06.2013 (0)
  7. Doppelter Befall (Bundespolizei und Abnow.com)
    Plagegeister aller Art und deren Bekämpfung - 15.04.2012 (9)
  8. Virus auf der HDD trotz doppelter ausführung von dBan ?
    Plagegeister aller Art und deren Bekämpfung - 09.11.2010 (1)
  9. World of Warcraft Trojaner
    Log-Analyse und Auswertung - 17.03.2010 (1)
  10. World of Warcraft Script
    Diskussionsforum - 26.03.2009 (4)
  11. doppelter prozess im taskmanager!
    Plagegeister aller Art und deren Bekämpfung - 27.11.2007 (2)
  12. World of Warcraft Keylogger pls Help!
    Mülltonne - 12.10.2007 (1)
  13. World of Dungeons
    Mülltonne - 23.08.2006 (1)
  14. Hab ich ein Virus ?doppelter dllhost.exe
    Plagegeister aller Art und deren Bekämpfung - 10.05.2006 (1)
  15. World of Dungeons
    Mülltonne - 28.03.2006 (0)

Zum Thema 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, - VBS 'Hello World' - Problem mit doppelter IF- Bedingung...
Archiv
Du betrachtest: VBS 'Hello World' - Problem mit doppelter IF- Bedingung auf Trojaner-Board

Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.