Verzeichnisse mit batch erstellen
Hallo kann bitte jemand helfen,
Ich würde gerne per Batch-Datei (ImageMagick) aus meinen PDFs, Thumbnail-Bilder machen, vorher soll in jeden Ordner (unterhalb eines bestimmten Verzeichnisses!) ein Ordner „thumbs“ angelegt werden, in den die JPGs dann gelegt werden.
Das Konvertieren und das Ablegen klappt eigentlich auch.
Nur habe ich das Problem, das hierdurch auch unter (z.B.) „C“ ein Ordner „thumbs“ angelegt wird und die Verarbeitung eines dort zufällig liegenden (anderen) PDFs ebenfalls versucht wird.
Ich möchte aber wirklich nur die PDFs verarbeitet haben, die in verschiedenen Unterodnern unter meinem bestimmten „PDF-Verzeichnis“ (z.B. C:\test\PDF) liegen.
Und auch nur in denen die „thumbs“Ordner erstellt haben.
Kann mir hierbei bitte jemand weiterhelfen.
Danke.
Hier mein momentaner Stand:
@for /f "delims=" %%i in ('dir /ad/s/b') do @call :create %%i %%~ni
:create
@if "%2"=="thumbs" goto :eof
@if not exist %1\thumbs mkdir %1\thumbs
@for %%b in (%1\*.pdf) do @call :convert %1 %%b
@goTo :eof
:convert
convert -resize 73x98 "%2" "%1\thumbs\%~n2.jpg"
@goTo :eof
Vielen Dank
Ich würde gerne per Batch-Datei (ImageMagick) aus meinen PDFs, Thumbnail-Bilder machen, vorher soll in jeden Ordner (unterhalb eines bestimmten Verzeichnisses!) ein Ordner „thumbs“ angelegt werden, in den die JPGs dann gelegt werden.
Das Konvertieren und das Ablegen klappt eigentlich auch.
Nur habe ich das Problem, das hierdurch auch unter (z.B.) „C“ ein Ordner „thumbs“ angelegt wird und die Verarbeitung eines dort zufällig liegenden (anderen) PDFs ebenfalls versucht wird.
Ich möchte aber wirklich nur die PDFs verarbeitet haben, die in verschiedenen Unterodnern unter meinem bestimmten „PDF-Verzeichnis“ (z.B. C:\test\PDF) liegen.
Und auch nur in denen die „thumbs“Ordner erstellt haben.
Kann mir hierbei bitte jemand weiterhelfen.
Danke.
Hier mein momentaner Stand:
@for /f "delims=" %%i in ('dir /ad/s/b') do @call :create %%i %%~ni
:create
@if "%2"=="thumbs" goto :eof
@if not exist %1\thumbs mkdir %1\thumbs
@for %%b in (%1\*.pdf) do @call :convert %1 %%b
@goTo :eof
:convert
convert -resize 73x98 "%2" "%1\thumbs\%~n2.jpg"
@goTo :eof
Vielen Dank
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 124678
Url: https://administrator.de/contentid/124678
Ausgedruckt am: 20.11.2024 um 13:11 Uhr
8 Kommentare
Neuester Kommentar
Hallo sommerzeit,
die erste for Schleife ist doch eigentlich überflüssig.
So sollte es doch gehen:
ungetestet
Gruß
LotPings
die erste for Schleife ist doch eigentlich überflüssig.
So sollte es doch gehen:
@Echo off
Set "Base=C:\Test\PDf"
Pushd "%Base%"
for /f "delims=" %%i in (
'dir /B/B/A-D "*.pdf" '
) Do call :convert "%%~dpi\thumbs" "%%~fi"
Popd
Goto :eof
:convert
if not exist %1 MD %1
convert -resize 73x98 "%2" "%~1\%~n2.jpg"
goto :eof
ungetestet
Gruß
LotPings
Hallo sommerzeit!
Hatte leider nur kurz drübergeschaut und übersehen, dass vor der Zeile
eine Zeile
fehlt - dadurch wird das Unterprogramm ":create" nach dem Durchlaufen aller passenden Ordner ein letztes Mal aufgerufen, und da %1 zu diesem Zeitpunkt keinen Inhalt hat in weiterer Folge
ausgeführt, was dann natürlich wegen des "\" am Anfang "C:\" bearbeitet.
LotPings Variante müsste übrigens in Zeile 5 geringfügig verändert werden:
Grüße
bastla
Hatte leider nur kurz drübergeschaut und übersehen, dass vor der Zeile
:create
goto :eof
for %%b in (\*.pdf) do @call :convert %1 %%b
LotPings Variante müsste übrigens in Zeile 5 geringfügig verändert werden:
'dir /S/B/A-D "*.pdf" '
bastla
Zitat von @bastla:
LotPings Variante müsste übrigens in Zeile 5
geringfügig verändert werden:
LotPings Variante müsste übrigens in Zeile 5
geringfügig verändert werden:
'dir /S/B/A-D "*.pdf" '
>
Hallo bastla,
Danke für die Korrektur!
Gruß
LotPings