scorpion16 10 Geschrieben 17. November 2003 Melden Teilen Geschrieben 17. November 2003 Hallo zusammen.. Auch ich habe ein Problem mit einem Kixscript. Das folgende script sollte alle im Computer eingebauten CD-ROM und Brenner finden und diese dann nach einer bestimmten Datei durchsuchen. Dies funktioniert auch bis zu einem gewissen Punkt ganz doll. Ist nämlich nur ein CD-ROM eingebaut hat das Scirpt keine Probleme und funktioniert perfekt. Sobald jedoch mehrere Laufwerke vorhanden sind, zeigt es nur noch die Laufwerkbuchstaben an. Daraus schliesse ich das etwas mit dem SubStr - Befehl nich in Ordnung ist. Ich kann jedoch keinen Fehle finden...HILFE!! ;) Hier das Script.. ____________________________________________________ CLS Small $Drives = CreateObject("Scripting.FileSystemObject").Drives For Each $Drive In $Drives ;_____________________________________________________________________ $Dateiname = SETUP.EXE ;_____________________________________________________________________ ;Name oder Pfad der Datei auf CD. ;Bsp: ;$Dateiname = test.kix ;oder.. ;$Dateiname = kixtart\test\test.kix ;--------------------------------------------------------------------- ;Wählt unter allen Laufwerken die CD-ROM und Brenner aus If Val($Drive.DriveType) = 4 ;4=CD-ROM $Drive1 = $Drive.DriveLetter $Drive1 Else If Val($Drive.Drivetype) = 5 ;5=Brenner $Drive2 = $Drive.DriveLetter $Drive2 Else If Val($Drive.Drivetype) = 6 $Drive3 = $Drive.DriveLetter $Drive3 EndIf ;---------------------------------------------------------------------- CLS $CD1 = SubStr($Drive1, 1, 1) ;liest jeweils den 1,2,3,4 und 5. Buchstabe heraus $CD2 = SubStr($Drive1, 2, 1) $CD3 = SubStr($Drive1, 3, 1) $CD4 = SubStr($Drive1, 4, 1) $CD5 = SubStr($Drive1, 5, 1) $B1 = SubStr($Drive2, 1, 1) $B2 = SubStr($Drive2, 2, 1) $B3 = SubStr($Drive2, 3, 1) $W1 = SubStr($Drive3, 1, 1) $W1 = SubStr($Drive3, 2, 1) $W1 = SubStr($Drive3, 3, 1) ;-----------------------CD-ROM-------------------------- If Exist ($CD1 + ":\$Dateiname") ;sucht laufwerke nach Datei ab $CD1 + ":\$Dateiname" Else If Exist ($CD2 + ":\$Dateiname") $CD2 + ":\$Dateiname" Else If Exist ($CD3 + ":\$Dateiname") $CD3 + ":\$Dateiname" Else If Exist ($CD4 + ":\$Dateiname") $CD4 + ":\$Dateiname" Else If Exist ($CD5 + ":\$Dateiname") $CD5 + ":\$Dateiname" EndIf ;----------------------------Brenner--------------------------------- If Exist ($B1 + ":\$Dateiname") Else If Exist ($B2 + ":\$Dateiname") $B2 + ":\$Dateiname" Else If Exist ($B3 + ":\$Dateiname") $B3 + ":\$Dateiname" EndIf ;-----------------------------andere--------------------------------------- If Exist ($W1 + ":\$Dateiname") $W1 + ":\$Dateiname" Else If Exist ($W2 + ":\$Dateiname") $W2 + ":\$Dateiname" Else If Exist ($W3 + ":\$Dateiname") $W3 + ":\$Dateiname" EndIf ____________________________________________________ Ich wäre sehr froh wenn mir schnell jemand helfen könnte. Mit freundlichen Grüssen Zitieren Link zu diesem Kommentar
zuschauer 10 Geschrieben 17. November 2003 Melden Teilen Geschrieben 17. November 2003 Hi scorpion16 und Willkommen im Board ! Dein Code ist durch die vielen Leerzeilen sehr unübersichtlich. Ich wollte diese Leerzeilen editieren, dabei ist mir dann aufgefallen, daß mir ab einer bestimmten Stelle in Deinen verschachtelten If-Anweisungen mehrere Endif-Anweisungen fehlten. :( Ich hab das Edit dann abgebrochen, weil ich nicht mehr wußte, ob ich da einen Fehler gemacht hab, beim Editieren oder ob Du da die IF-Anweisungen nicht mehr geschlossen hast. Der (mein) Fehler trat nach der Erkennung weiterer CD-Rom auf, also in der Else-Anweisung nach dem ersten CD-Rom. Entweder liegt da Dein Fehler - oder meiner, für mich ist diese Verschachtelung in Deinem Script so nicht verfolgbar - zu unübersichtlich wegen der vielen Verschachtelungen. Ich versuch das Script mal (für mich) in einem normalen Editor ! Vielleicht solltest Du Dein Script mal in der Richtung checken - If und endif - Anweisungen. ;) Zitieren Link zu diesem Kommentar
zuschauer 10 Geschrieben 17. November 2003 Melden Teilen Geschrieben 17. November 2003 Ok, ich hab das Script nur syntaktisch im Editor überprüft - nicht auf inhaltliche Richtigkeit ! Es fehlen 10 Endif-Anweisungen und die FOR-Schleife ist nicht beendet ! CLSSmall$Drives = CreateObject("Scripting.FileSystemObject").DrivesFor Each $Drive In $Drives If Val($Drive.DriveType) = 4 ;4=CD-ROM $Drive1 = $Drive.DriveLetter $Drive1 Else If Val($Drive.Drivetype) = 5 ;5=Brenner $Drive2 = $Drive.DriveLetter $Drive2 Else If Val($Drive.Drivetype) = 6 $Drive3 = $Drive.DriveLetter $Drive3 EndIf CLS $CD1 = SubStr($Drive1, 1, 1) ;liest jeweils den 1,2,3,4 und 5. Buchstabe heraus $CD2 = SubStr($Drive1, 2, 1) $CD3 = SubStr($Drive1, 3, 1) $CD4 = SubStr($Drive1, 4, 1) $CD5 = SubStr($Drive1, 5, 1) $B1 = SubStr($Drive2, 1, 1) $B2 = SubStr($Drive2, 2, 1) $B3 = SubStr($Drive2, 3, 1) $W1 = SubStr($Drive3, 1, 1) $W1 = SubStr($Drive3, 2, 1) $W1 = SubStr($Drive3, 3, 1) If Exist ($CD1 + ":\$Dateiname") ;sucht laufwerke nach Datei ab $CD1 + ":\$Dateiname" Else If Exist ($CD2 + ":\$Dateiname") $CD2 + ":\$Dateiname" Else If Exist ($CD3 + ":\$Dateiname") $CD3 + ":\$Dateiname" Else If Exist ($CD4 + ":\$Dateiname") $CD4 + ":\$Dateiname" Else If Exist ($CD5 + ":\$Dateiname") $CD5 + ":\$Dateiname" EndIf If Exist ($B1 + ":\$Dateiname") Else If Exist ($B2 + ":\$Dateiname") $B2 + ":\$Dateiname" Else If Exist ($B3 + ":\$Dateiname") $B3 + ":\$Dateiname" EndIf If Exist ($W1 + ":\$Dateiname") $W1 + ":\$Dateiname" Else If Exist ($W2 + ":\$Dateiname") $W2 + ":\$Dateiname" Else If Exist ($W3 + ":\$Dateiname") $W3 + ":\$Dateiname" EndIf ;<- hier ist bei Dir Schluß ! Endif Endif Endif Endif Endif Endif Endif Endif Endif EndifEndFor[/Code] Wobei ich nicht mehr weiß, ob eine FOR-Schleife mit ENDFOR beendet wird - ich hab gerade keine Kix-Anleitung da ! Zitieren Link zu diesem Kommentar
scorpion16 10 Geschrieben 20. November 2003 Autor Melden Teilen Geschrieben 20. November 2003 Hmm danke. Ich werde es nochmals überarbeten ;) P.s. sorry das ich erst so spät zurückschreibe. War in der Berufsschule :( Zitieren Link zu diesem Kommentar
scorpion16 10 Geschrieben 20. November 2003 Autor Melden Teilen Geschrieben 20. November 2003 Hmm naja habe es nicht geschafft. Es funktioniert weiterhin nur bei einem Laufwerk. Aber noch etwas anderes. Ich habe als Test ein ganz einfaches script geschrieben. $a = a $b = b $c = c $d = d $e = e ?$a$b$c$d$e Dies sollte nun ja logischerweise die Buchstabenkette "abcde" augeben. Ich staunte nicht schlecht als das ergebniss "bcdea" war. An was liegt das? Ist dies ein Fehler im KixScript Editor? Zitieren Link zu diesem Kommentar
zuschauer 10 Geschrieben 20. November 2003 Melden Teilen Geschrieben 20. November 2003 Hi ! So genau kenn ich mich nicht mit KixtArt aus, aber eigenlich müßte die Zeile heißen: ? $a+$b+$c+$d+$e damit vor der Ausgabe der GesamtString erzeugt werden kann. Was bringt denn der Befehl für eine Ausgabe ? Zitieren Link zu diesem Kommentar
scorpion16 10 Geschrieben 21. November 2003 Autor Melden Teilen Geschrieben 21. November 2003 Ich habe den Befehl eigentlich nur zum Test geschrieben weil in einem anderen Script etwas ähnliches falsch geloffen ist. Mit dem Befehl.. ? $a+$b+$c+$d+$e ..habe ich es auch schon versucht. Hm naja trotzdem danke für die hilfe ;) Gruss Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.