Wie kann ich feststellen, ob bestimmte Dateien in einem bestimmten Ordner vorhanden sind?
Also: "Wenn die Dateien vorhanden sind, führe das Script weiter aus, ansonsten gib Fehlermeldung und halte Script an"
Wie kann ich feststellen, ob bestimmte Dateien in einem bestimmten Ordner vorhanden sind?
Also: "Wenn die Dateien vorhanden sind, führe das Script weiter aus, ansonsten gib Fehlermeldung und halte Script an"
mit der taste END beendest du das scriptchen
HotKeySet("{END}","_exit")
[/autoit] [autoit][/autoit] [autoit]While 1
Sleep(100)
$file = "test.au3" ; file angeben wo du überprüfen willst!
If Not FileExists($file) Then
MsgBox(16,"File Check","Die Datei wurde nicht gefunden!")
Exit 1
EndIf
WEnd
Func _exit()
Exit 0
EndFunc
Aus der HILFE, die sehr gut ist:
; FileExists ( "path" )
If FileExists("C:\autoexec.bat") Then
MsgBox(4096, "Datei C:\autoexec.bat", "Existiert")
Else
MsgBox(4096,"Datei C:\autoexec.bat", "existiert NICHT")
EndIf
If FileExists("C:\") Then
MsgBox(4096, "Verzeichnis C:\ ", "existiert")
Else
MsgBox(4096,"Verzeichnis C:\ " , "existiert NICHT")
EndIf
If FileExists("D:\") Then
MsgBox(4096, "Laufwerk D: ", "existiert")
Else
MsgBox(4096,"Laufwerk D: " , "existiert NICHT")
EndIf
Das sollte Dir doch weiter helfen.
Danke, das funktioniert soweit.
Ja, die Hilfe ist sehr gut. Wenn man die Funktion jedoch nicht kennt, wirds schwierig.
Kann man an eine vorherige Stelle im Script zurück springen?
für was?
was willst noch hab dir doch schon des zusammengebastelst was du wolltest *g*
sollen es mehrere files sein oder wie?
Ich will nicht, dass das Programm geschlossen wird, wenn die Datei nicht vorhanden ist. Sondern die Möglichkeit zur Korrektur besteht.
Vielleicht meinst Du ja sowas:
[autoit]
Global $aFiles[3] = [@WindowsDir & '\explorer.exe', @WindowsDir & '\notepad.exe', @WindowsDir & '\regedit.exe']
$bCheck = True
For $i = 0 To UBound($aFiles) - 1
If Not FileExists($aFiles[$i]) Then $bCheck = False
Next
If Not $bCheck Then
MsgBox(0, 'Fehler', 'Die erforderlichen Dateien sind nicht vollständig vorhanden!')
Else
MsgBox(0, 'kein Fehler', 'Alle Dateien vorhanden!')
EndIf
Ich glaub er meint das so:
Wenn die Datei nicht gefunden wurde, soll autoit zu eine Func zurückkehren.
Das liese sich so lösen:
[autoit]Func _Ex ()
; Hier wird das script weiter ausgeführt, wenn die Datei nich vorhanden ist.
EndFunc ;==> _Ex
If FileExists ("C:\Test.txt") Then ; Testet, ob die Datei vorhandenist.
MsgBox (64, "Datei gefunden", "Die Datei wurde gefunden!") ; Wenn sie vorhanden ist, wird diese MsgBox gezeigt.
Else
_Ex () ; Wenn sie nicht vorhanden ist, kehrt das programm zurück zu - Func _Ex ().
EndIf
Das Heist, du kannst i.wo z.B. _bla () setzen, dabei ist das () wichtig, das _ davor is net so wichtig.
kommt dein script nin also zu diesem _bla (), springt es zu der Func, mit der bezeichnung _bla (), also zu Func _bla ().
Das ist eigl. das gleiche wie z.B. der GoTo Befehl, den man glaub ich aus Batch oder alten AutoIT versionen kennt.
ICH glaube, er meint es so:
(Teile von Oscar:))
Global $aFiles[3] = [@WindowsDir & '\explorer.exe', @WindowsDir & '\notepad.exe', @WindowsDir & '\regedit.exe']
$bCheck = True
For $i = 0 To UBound($aFiles) - 1
Do
sleep(1000)
Until FileExists($aFiles[$i])
Next
Ich merke grade, wie sinnlos mein Skript ist...
Hi,
hier wird dem Nutzer die fehlende Datei mit Speicherort benannt und Du kannst besseren Support liefern.
Dim $aRes[5] = [@ScriptDir & "\SfBsys\W.ico", @ScriptDir & "\SfBsys\A.ico", _
@ScriptDir & "\SfBsys\N.ico", @ScriptDir & "\SfBsys\S.ico", @ScriptDir & "\SfBsys\Blau4SfB.jpg"]
For $z = 0 To 4 ;i statisch kein Ubound
If Not FileExists($aRes[$z]) Then Exit _
MsgBox(16, 'Error ' & $title, $aRes[$z] & @CRLF & @CRLF & "Datei nicht gefunden ! ")
Next
siehe auch dieses Beispiel:
Shutdown for Benjamin - SfB
Viel Erfolg !
Oscar
Bei deinem Vorschlag wird das Script weiter abgearbeitet, auch wenn nicht alle Dateien vorhanden sind, das soll nicht sein.
@commander 21
Genau so soll es sein, nur leider funktioniert es bei mir nicht. Das Script springt nicht an die Stelle Func _Ex () zurück.
Hi, so besser ?
[autoit]
If FileExists ("C:\Test.txt") Then ; Testet, ob die Datei vorhanden ist.
MsgBox (64, "Datei gefunden", "Super, die Datei wurde gefunden!") ; Wenn vorhanden, dann diese MsgBox zeigen
Else
_Ex () ; Wenn sie nicht vorhanden ist, kehrt das programm zurück zu - Func _Ex ().
EndIf
Func _Ex ()
MsgBox (64, "Datei nicht gefunden ! ", "Hier wird die Funktion _Ex ausgeführt ! ") ; Hier wird das script weiter ausgeführt, wenn die Datei nicht vorhanden ist.
EndFunc ;==> _Ex
; Ende
[/autoit]
Bitte auch den Sinn hinterfragen, wenn Dateien fehlen ! Ich kenne nicht das Script !
Viel Erfolg !
Super danke, hab's jetzt hinbekommen.