gansterjo2
Goto Top

If Schleife wird falsch interpretiert

Hallo Zusammen

Ich habe heute bemerkt, dass ich beim erstellen des Scripts ein Komisches Phänomen hervorrufe und zwar geht es darum, dass wenn ich beim untenstehenden Code die Variable 'IntTage' mit 10 abfülle.
Werden die Ordner analysiert und ich bei if immer in die Schleife mit der Msgbox "Kleiner" komme.

Hat da jemand eine Idee, wo der Hund begraben sein könnte?

Set objFSO = CreateObject("Scripting.FileSystemObject")   


if WScript.Arguments.Count = 2 Then
	strOrdner = WScript.Arguments.item(0) 'Der Wert1 wird gesetzt.  
	intTage = WScript.Arguments.item(1) 'Der Wert2 wird gesetzt.  
else
	msgbox ("Syntax: Test.vbs Argument1 Argument2")  
end if


strExtension = ""   
Set objOrdner = objFSO.GetFolder(strOrdner) 
intZahl = 0 
For Each objDatei In objOrdner.Files 
    If LCase(Right(objDatei.name, Len(strExtension))) = LCase(strExtension) _  
        And DateDiff("d", objDatei.DateCreated, Now) > intTage Then   
        objDatei.Delete 
        intZahl = intZahl + 1 
    End If 
Next 
For Each objUnterordner In objOrdner.SubFolders  

diff = DateDiff("d", objUnterordner.DateCreated, Now)  
diff1 = 2
msgbox diff
	if diff < intTage then
		msgbox "kleiner"  
	else
		msgbox "grosser"  
	end if
Freundliche Grüsse Gansterjo2

Content-Key: 196157

Url: https://administrator.de/contentid/196157

Printed on: April 26, 2024 at 21:04 o'clock

Member: Gansterjo2
Gansterjo2 Dec 21, 2012 at 11:49:02 (UTC)
Goto Top
Die IF Schleife mit den beiden MSGboxes entscheidet sozusagen Inventiert also, wenn etwas falsch ist, setzt er es einfach als Richtig und umgekehrt.
Mitglied: 76109
76109 Dec 21, 2012 at 12:02:04 (UTC)
Goto Top
Hallo Gansterjo2!

Versuchs mal mit:
intTage =  CInt(WScript.Arguments.item(1))

Gruß Dieter
Member: Gansterjo2
Gansterjo2 Dec 21, 2012 at 12:06:15 (UTC)
Goto Top
Hallo Dieter

Vielen Dank für die Antwort, nun habe ich noch eine Frage...

Was bedeutet 'CInt' ?

Gruss Beat
Mitglied: 76109
76109 Dec 21, 2012 updated at 12:18:06 (UTC)
Goto Top
Hallo Gansterjo2!

Naja, da gibt's noch mehr von z.B. CLng, CDbl, CDate, CStr ...
Mit den Konvertierungsfunktionen wandelst Du einen bestimmten Datentyp in Dein gewünschtes Format um. In Deinem Fall einen String in einen Zahlenwert vom Typ Integer.

Und das hier
If LCase(Right(objDatei.name, Len(strExtension))) = LCase(strExtension)
würde ich so machen
If LCase(objFSO.GetExtensionName(objDatei.name)) = "xyz" Then  

Gruß Dieter
Member: Gansterjo2
Gansterjo2 Dec 21, 2012 at 13:06:05 (UTC)
Goto Top
Hallo Dieter

Vielen Dank für die Erklärung. Ich wäre nicht darauf gekommen face-smile

Gruss Gansterjo2