Jump to content
Sign in to follow this  
scorpion16

KixTart

Recommended Posts

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

Share this post


Link to post

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

Share this post


Link to post

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 !

Share this post


Link to post

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?

Share this post


Link to post

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 ?

Share this post


Link to post

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

Share this post


Link to post
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte überlege Dir, ob es nicht sinnvoller ist ein neues Thema zu erstellen.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

Werbepartner:



×
×
  • Create New...