
Verhalten Inhaltsplugins bei Dateien mit falscher Extension
Moderators: Hacker, Stefan2, white
Re: Verhalten Inhaltsplugins bei Dateien mit falscher Extens
Nicht die ersten 10 bytes aber es liefert eine Formatinformation.Dalai wrote:[*]Hat jemand Ideen, wie man auf andere Weise falsch benannte Bilder ausfindig machen kann? Momentan nutze ich TrID dafür, aber die Suche dauert sehr lange und lastet die CPU voll aus. Gibt's vielleicht ein Plugin, das die ersten 10 Bytes des Dateiinhalts durchsuchen kann?
wdx_mediainfo: http://www.ghisler.ch/board/viewtopic.php?p=261824#261824
Suche nach *.jpg
Plugins: mediainfo.general format != JPEG
oder mediainfo.general format = PNG
Ob es schneller ist kann ich allerdings nicht sagen.
Gruß
Holger
Erstmal ein großes Dankeschön an alle fürs Mitdenken, Mitmachen und Lösungen ausdenken! 
Ich fasse mal die bisher möglichen Lösungen, deren Suchdauer sowie deren Vor- und Nachteile zusammen:
MfG Dalai

Ich fasse mal die bisher möglichen Lösungen, deren Suchdauer sowie deren Vor- und Nachteile zusammen:
- Umbenanntes Plugin FileX (auf sowas muss man erstmal kommen
) mit
Code: Select all
x_detect="EXT="JPG" & !(FINDI("JFIF"))"
- Suchdauer: ~1 Sek.
- Vorteil: keiner
- Nachteile: Findet JPGs ohne JFIF-Tag (was man vielleicht im detect-String noch ausschließen könnte); braucht ein Plugin, das nur für diesen einen Zweck missbraucht/umbenannt wurde
- Umbenanntes Plugin FileX mit
Code: Select all
x_detect="[0]!=255 & [1]!=216 & [2]!=255"
- Suchdauer: ~1 Sek.
- Vorteile: Findet alle Nicht-JPEGs, findet keine ohne JFIF-Tag
- Nachteil: braucht ein Plugin, das nur für diesen einen Zweck missbraucht/umbenannt wurde
- Plugin MediaInfo mit Suche
Code: Select all
"mediainfo.general format" != JPEG
- Suchdauer: ~8 Sek.
- Vorteil: braucht kein missbrauchtes Plugin
- Nachteil: Findet Dateien mit 0 Byte Größe (ja, ich weiß, kann man auch noch in der Suche ausfiltern)
- Plugin TrID
- Suchdauer: ewig
- Vorteil: kein wirklicher, außer dass ich das Plugin sowieso schon seit Jahren benutze
- Nachteil: Stromverbrauch des Systems steigt deutlich
- Batch-Skript mit file, ein wenig grep-Magic und dem Standalone-Lister (Skript folgt im nächsten Post, sonst wird's zu unübersichtlich)
- Suchdauer: ~5 Sek.
- Vorteil: unabhängig von TC nutzbar
- Nachteile: nicht in den TC integrierbar, denn die Ergebnisliste wird nur im Standalone-Lister angezeigt; braucht recht lange, wenn es viele Dateien zu verarbeiten gibt
MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Hier nun das Batch-Skript, das ich kurz nach dem Vorschlag mit file geschrieben habe. Es erwartet als einzigen Parameter ein Verzeichnis, das verarztet werden soll. Ein Eintrag im Startermenü oder Button von TC kann dann z.B. so aussehen:
Code: Select all
Kommando: FindJpgsWithWrongExtensionInDir.cmd
Parameter: "%P"
Code: Select all
@echo off
REM ---------------------------------------------------------------------------
set FILEEXE=E:\Programme\file\5.03\bin\file.exe
set LISTEREXE=%COMMANDER_PATH%\Plugins\Lister\Lister.exe
set LISTERPARAMS=/i="%COMMANDER_INI%" /T1
set GREPEXE=%SystemRoot%\system32\grep.exe
set FILETYPE=*.jpg
set EXCLUDESTRING=JFIF^|EXIF
REM ---------------------------------------------------------------------------
if "%~1"=="" (
echo.
echo Bitte zu verarbeitendes Verzeichnis angeben!
echo.
pause
goto :EOF
)
goto DOIT
:OUT
echo %*
title %*
goto :EOF
:DOIT
REM --- temp. Datei definieren
set TEMPFILE=%TEMP%\$jpg_png_typelist.txt
set TEMPLIST=%TEMP%\$jpg_png_filelist.txt
REM --- Dateilist erstellen
echo.
call :OUT Erstelle Liste von %FILETYPE% in %1
dir /b /s /ogn "%~1%FILETYPE%">"%TEMPLIST%"
REM --- Dateitypen bestimmen
echo.
call :OUT Bestimme Dateitypen. Bitte warten ...
"%FILEEXE%" -f "%TEMPLIST%">"%TEMPFILE%"
REM --- Alle "Nicht-JPEGs" aus der Liste filtern
echo.
call :OUT Filtere Dateiliste nach "%EXCLUDESTRING%"
"%GREPEXE%" -Ev "%EXCLUDESTRING%" "%TEMPFILE%">"%TEMPFILE%.2"
move /Y "%TEMPFILE%.2" "%TEMPFILE%"
REM --- temp. Datei anzeigen
echo.
call :OUT Resultatliste anzeigen
start /wait /min "list" "%LISTEREXE%" %LISTERPARAMS% "%TEMPFILE%"
REM --- temp. Datei löschen
del /F /Q "%TEMPFILE%"
del /F /Q "%TEMPLIST%"
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Einige der o.g. Methoden funktionieren (richtig) gut, aber trotzdem ist die grundlegende Frage noch nicht geklärt: Warum werden falsch benannte Dateien von den Plugins ignoriert? Am detect-String liegt das übrigens nicht:
MfG Dalai
Code: Select all
[ContentPlugins]
5=%COMMANDER_PATH%\Plugins\ImgSize\ImgSize.wdx
6=%COMMANDER_PATH%\Plugins\ImageInfo\Images.wdx
6_detect="(EXT="BMP")|(EXT="JPG")|(EXT="JPEG")|(EXT="GIF")|(EXT="TGA")|(EXT="PNG")|(EXT="PSD")|(EXT="TIFF")|(EXT="TIF")|(EXT="PCX")"
10=%COMMANDER_PATH%\Plugins\TrID\trid.wdx
5_detect=
10_detect=
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Re: Verhalten Inhaltsplugins bei Dateien mit falscher Extens
Weil der Plugin Autor, in diesem Fall ich, dies so festgelegt hat. [1]Dalai wrote:ImgSize [... gibt] zum falsch benannten Bild keinerlei Infos aus
[...]
Fragen:
- Warum ist das so?
Nein.Dalai wrote:
- Liegt das an der Plugin-Schnittstelle[...]?
Ja.Dalai wrote:
- Oder liegt es an den Plugins?
J.Bl, der diesen Thread gerade erst entdeckt hat.
[1] kann man durchaus auch ändern...
Re: Verhalten Inhaltsplugins bei Dateien mit falscher Extens
Das heißt, das Plugin vergleicht die Extension mit dem tatsächlich gefundenen/ermittelten Dateityp und arbeitet nur bei Übereinstimmung?J.Bl wrote:Weil der Plugin Autor, in diesem Fall ich, dies so festgelegt hat. [1]Dalai wrote:ImgSize [... gibt] zum falsch benannten Bild keinerlei Infos aus
[...]
Fragen:
- Warum ist das so?
[...]
[1] kann man durchaus auch ändern...
Wer ist "man"? Der Nutzer oder der Plugin-Autor? Wie könnte "man" es ändern? Unabhängig davon betrifft das aber nicht nur dieses eine Plugin sondern auch andere.
Weil du grad mal da bist: Warum kann ImgSize keine Dateien mit Extension .jpeg verarbeiten sondern nur .jpg? Klar, weil du das so festgelegt hast, aber warum?
MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Re: Verhalten Inhaltsplugins bei Dateien mit falscher Extens
Entschuldigung: "man" = Plugin-Autor (also ich).Dalai wrote:Wer ist "man"? Der Nutzer oder der Plugin-Autor
Faulheit... Zeitmangel... Unüberlegtheit...Dalai wrote:...warum...?
Ich kann jetzt auf die Schnelle erst einmal nur auf Wunsch einige Erweiterungen anhängen (für - dem Plugin - schon bekannte Dateiformate). Später (in endlicher Zeit) kann dann durchaus (optional) die Variante dazukommen das Dateiformat aus den Dateien selbst zu ermitteln (das ist natürlich langsamer: früher verbot sichs deshalb schon aus geschwindigkeitsgründen).
J.Bl