Spoiler anzeigen
#Include <File.au3>
#Include <Array.au3>
$log= @TempDir & "\test_dummy.txt"
[/autoit] [autoit][/autoit] [autoit]get_file_list()
[/autoit] [autoit][/autoit] [autoit]Func get_file_list()
Dim $file_dir=""
If Not FileExists("c:\msi-setup") Then
MsgBox(0,"Fehler","MSI File wurde nicht entpackt.")
Exit
Else
If FileExists("c:\test.file") Then FileDelete("c:\test.file")
RunWait(@ComSpec & " /c dir c:\msi-setup /A:D /B /s >> c:\test.file","",@SW_HIDE)
_FileReadToArray("c:\test.file", $file_dir)
_ArraySort($file_dir)
For $j=1 to UBound($file_dir,1)-1
If Not FileExists($file_dir[$j] & "\*\") Then FileWriteLine($log,"##### " & $file_dir[$j]) ; ich möchte hier nur die Ordner festhalten, welche keine Unterordner und nur Dateien beinhalten
$FileList=_FileListToArray($file_dir[$j],"*",1)
;~ If Not @Error=1 Or @error=4 Then ProgressOn (StringTrimLeft($file_dir[$j],12), "Bitte haben Sie etwas Geduld.....", "")
_ArraySort($FileList)
[/autoit] [autoit][/autoit] [autoit]For $i=1 to UBound($FileList,1)-1
If StringLeft($file_dir[$j],28) <> "c:\msi-setup\System32\Redist" Then
If FileExists($file_dir[$j] & "\" & $FileList[$i]) Then
$a=$file_dir[$j] & "\" & $FileList[$i]
$a0=FileGetSize($a)
$a1=FileGetVersion($a)
$a2=FileGetSize($a)
$a3=FileGetTime($a)
$a4=FileGetTime($a,1)
;~ FileWriteLine($log,$FileList[$i] & "|" & $a1)
FileWriteLine($log,$FileList[$i] & "|" & $a0 & "|" & $a1 & "|" & $a2 & "|" & $a3[2] & "." & $a3[1] & "." & $a3[0] & "-" & $a3[3] & ":" & $a3[4] & "|" & $a4[2] & "." & $a4[1] & "." & $a4[0] & "-" & $a4[3] & ":" & $a4[4])
Else
EndIf
;~ $percent=UBound($fileList,1)/100
;~ ProgressSet( $i/$percent , $i & " von " & UBound($FileList,1)-1 & " Dateien gefunden")
Else
EndIf
Next
;~ ProgressOff()
Next
EndIf
EndFunc]
Hallo ich habe ein / zwei Fragen, kann man das Script noch optimieren, es benötigt so ca. ~20 sec. bei ~4000 Dateien.
Oder ist das OK auf einem Notebook (mit 5400 Umdrehungen)
Wie kann ich es erreichen das nur der Ordnername der Dateinamen beinhaltet aufgeschrieben wird?
Beispiel:
####msi-setup\1
####msi-setup\1\2
####msi-setup\1\2\3\datei*.* ich möchte nur diesen Ordnernamen haben für die Schleife / Liste