Jump to content
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Geschrieben

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

Geschrieben

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. ;)

Geschrieben

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 !

 


CLS
Small
$Drives = CreateObject("Scripting.FileSystemObject").Drives
For 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
Endif
EndFor
[/Code]

Wobei ich nicht mehr weiß, ob eine FOR-Schleife mit ENDFOR beendet wird - ich hab gerade keine Kix-Anleitung da !

Geschrieben

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?

Geschrieben

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

Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...