Gibt es schon ein Script, welches automatisch erkennen kann, um welches Format es sich bei einer heruntergelandenen Datei handelt und diese bei gepackten zustand entpackt. eventl. noch alle möglichen varianten enthält, zum starten (bei .exe = Run,...) ?
Automatische Erkennung von Dateien
-
- [ offen ]
-
timyboy -
25. November 2012 um 18:38 -
Geschlossen -
Erledigt
-
-
Um Dateitypen zu erkennen hatte ich in folgendem Script mal eine Funktion geschrieben... Allerdings erkennt sie nur .jpg .png .gif .mp3 .mp4 .flv und .exe Dateien. Um ein Zip-Archiv zu entpacken kannst du die 7za.exe von 7Zip verwenden. (Einfach mal googeln)
Spoiler anzeigen
[autoit]#include <File.au3>
[/autoit] [autoit][/autoit] [autoit]
Local $hFile, $sContent, $sCacheDir = @UserProfileDir & "\AppData\Local\Google\Chrome\User Data\Default\Cache\", $sDestDir = @ScriptDir & "\cache\"
Local $aPath = _FileListToArray($sCacheDir)
If Not FileExists($sDestDir) Then DirCreate($sDestDir)For $i = 1 To $aPath[0]
[/autoit] [autoit][/autoit] [autoit]
$hFile = FileOpen($sCacheDir & $aPath[$i], 16)
$sTyp = _GetFileFormat($hFile)
If Not @error Then
If Not FileExists($sDestDir & $sTyp & "\") Then DirCreate($sDestDir & $sTyp & "\")
FileCopy($sCacheDir & $aPath[$i], $sDestDir & $sTyp & "\" & $aPath[$i] & $sTyp, 1)
Else
If Not FileExists($sDestDir & "Unknow\") Then DirCreate($sDestDir & "Unknow\")
FileCopy($sCacheDir & $aPath[$i], $sDestDir & "Unknow\" & $aPath[$i], 1)
EndIf
FileClose($hFile)
Next
ShellExecute($sDestDir)Func _GetFileFormat($hFile)
[/autoit]
Local $8Byte = FileRead($hFile, 8), $6Byte = BinaryMid($8Byte, 1, 6), $4Byte = BinaryMid($8Byte, 1, 4), $3Byte = BinaryMid($8Byte, 1, 3), $2Byte = BinaryMid($8Byte, 1, 2)
Select
Case $8Byte = "0x89504E470D0A1A0A"
Return ".png"
Case $3Byte = "0xFFD8FF"
Return ".jpg"
Case $6Byte = "0x474946383961" Or $6Byte = "0x474946383761"
Return ".gif" ; by Christoph54 (autoit.de)
Case $3Byte = "0x494433" Or $2Byte = "0xFFFB"
Return ".mp3"
Case $3Byte = "0x464C56"
Return ".flv"
Case StringLeft($8Byte, = "0x000000" And StringMid($8Byte, 11, 18) = "66747970" ; "0x000000..66747970"
Return ".mp4"
Case $2Byte = "0x4D5A" Or $2Byte = "0x5A4D"
Return ".exe"
Case Else
SetError(1, Default, "")
EndSelect
EndFunc ;==>_GetFileFormat -
Die meisten Dateitypen haben eine Dateisignatur an der sie eindeutig erkennbar sind.
Hier ist ein guter Startpunkt. -
danke leute, leider bin ich noch nicht ganz so fit wie ihr... vielleicht hat ja jemand eine lösung, welche einer in seiner schublade verborgen wiederfindet.. danke
-
danke leute, leider bin ich noch nicht ganz so fit wie ihr... vielleicht hat ja jemand eine lösung, welche einer in seiner schublade verborgen wiederfindet.. danke
Wir werden dir verdammt nochmal kein Script schreiben!
Wenn es dir zu schwer ist, schreib mal leichtere Scripte.
Arbeite dich durch verschiedene Turoials, such einfach mal bei Google, YT & Co.Und falls du Autoit nicht lernen möchtest sondern nur Scripte abgreifen, dann bist du hier falsch. (Zumindest falsches Unterforum)
Ansonst,
Mfg