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

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

Link zu diesem Kommentar

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

Link zu diesem Kommentar

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 !

Link zu diesem Kommentar

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?

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

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...