sternex
Goto Top

PDF mit bestimmter Seitenzahl in Ordner verschieben

Hallo,
ich habe folgende Frage:

Ich habe einen bestehenden Batch-Script der aus irgendeinem Grund nicht mehr will.

Ich habe viele Tausend PDF Dateien bei denen die Seitenzahl mittels "APGetPageCount" ausgelesen wird.
Ab einer bestimmten Seitenzahl soll (siehe: set /a "seitenzahl=4")
die Datei in den Zielpfad verschoben werden und alle anderen bleiben wo sie sind.

Jede Datei KANN eine dazugehörige PDF haben die mit kopiert werden soll.
Hier mein Aufbau:

Datei1_K1.pdf
Datei1_K2.pdf
Datei2_K1.pdf
Datei2_K2.pdf

Das Problem ist jetzt nur das es alle K1 Dateien verschiebt aber die passende K2 Datei nicht mitnimmt.
Vll kann jmd das Problem schnell lösen ;)
Hier die aktuelle Batch...

@echo off & setlocal enabledelayedexpansion

set "Quelle=C:\temp"  
set "DateienK1=*_K1.pdf"  
set "Ziel=C:\temp\big"  
set "PgCt=F:\Programme\pdfcount.exe"  

for %%i in ("%Quelle%\%DateienK1%") do (  
REM    echo "%%~ni"  
REM    for /f "tokens=1 delims=_K" %%a in ("%%~ni.pdf") do (  
REM        echo "%%~na"  
REM    )
   echo Datei: "%%~ni.pdf"  
   call :Auswertung "%Quelle%\%%~ni.pdf"  
)
goto :eof

:Auswertung
REM SEITENZAHL GROESSER ALS ANGEGEBENE ZAHL -> VERSCHIEBE IN KOMPAKT!!
set /a "seitenzahl=4"  

for /f "tokens=2 delims=: " %%n in ('call "%PgCt%" "%~1"^|findstr /c:"PageCount:"') do (  
        echo Seiten: %%n
        if "%%n" GTR "%seitenzahl%" (  
		echo verschiebe Dateien
                move %1 "%Ziel%">nul  
                for /f "delims=K" %%f in ("%~n1") do (  
                        if exist "%Quelle%\%%fK2.pdf" move "%Quelle%\%%fK2.pdf" "%ziel%">nul  
                )
        )
)
goto :eof

Content-ID: 175452

Url: https://administrator.de/contentid/175452

Ausgedruckt am: 23.11.2024 um 05:11 Uhr

60730
60730 28.10.2011 um 10:44:47 Uhr
Goto Top
Moin,

Ich habe einen bestehenden Batch-Script der aus irgendeinem Grund nicht mehr will.

  • bedeutet das, die lief mal?
  • mach mal das echo off weg...
  • schau mal, was der dann bei Zeile 27 ff macht. - bzw. nimm in Zeile 28 ganz hinten die >nul raus

  • Die Frage ist doch - warum so?

Ich vermute mal -ungetesteterweise .- der Bock steckt in Zeile 26/27
zuerst verschiebst du die "quelldatei" an einen anderen Ort und dann beziehst du dich wieder zurück zu Ihr...

Dreh die Zeilen mal um....
Sternex
Sternex 28.10.2011 um 11:03:13 Uhr
Goto Top
Ja es lief mal so. Aber mit deinen 2 Hinweisen hat es schon funktioniert.
Die Frage ist nur warum es ging und jetzt nichtmehr o.O

* mach mal das echo off weg...
  • schau mal, was der dann bei Zeile 27 ff macht. - bzw. nimm in Zeile 28 ganz hinten die >nul raus
Sternex
Sternex 28.10.2011 um 11:08:15 Uhr
Goto Top
Irrtum es funktioniert doch nicht.
60730
60730 28.10.2011 um 11:15:52 Uhr
Goto Top
Salve.

Die Frage ist nur warum es ging und jetzt nichtmehr o.O
ja weil ähh also ähh wegen Plantquadrat xbr12 im Dräbbelhäpp mit Flourkohlenwasserstoff Meine Hände haben keine Löcher, die hat nur Inri und den kann ich grad nicht fragen...
ok - also du hast nun was genau gemacht?

das €echo off² weggenommen?

Zeile 26 raus und als (da wo jetzt Zeile 30 ist) wieder rein?

Was sagt denn die Batch, wenn am Ende eine Pause steht?

² Ab jetzt schreib ich nur noch €echo off
Sternex
Sternex 28.10.2011 um 11:25:50 Uhr
Goto Top
Fehler erkannt...
Es lag nur am Dateiname.

er sucht ja bis zum ersten K und vergleicht damit. delims=K
Der Dateiname hatte aber noch ein K drin und so ging es nicht.

Also Dateiname ändern und den Batch so lassen wie er ist ;)
Skyemugen
Skyemugen 28.10.2011 um 11:34:13 Uhr
Goto Top
[OT]
... das ist alles nur geklaut echo off! echo off! ... ach ne, das war etwas anderes ...

Mein echo off, mein echo off - das war mir einst ein Freund
doch nun hat es - hab's nicht gehofft - den Fehler nicht gezeigt
dann kam es weg - und siehe da - was hab ich mich gefreut
denn echo off, ja echo off hat vor sich hingeträumt ...

Nimm's weg echo on und bätscheln
[/OT]
60730
60730 28.10.2011 um 11:50:10 Uhr
Goto Top
[OT]
Weine nicht, wenn dir der Fehler nicht auffällt, damm damm
es gibt einen, der zu dir hält.
Echo off off off
Bätch, Zehämde undsoweiter bricht, mein geliebtes Echo off verlass mich nicht.
Alles, alles geht vorbei, seh den Fehler nicht worüber ich mich freu
Echo off ich will ein Kind von dir
bin ich traurig, dann sagt es zu mir:
"The Error you have called is temporarily not available please try again later"
[/OT]

Wenn die Dateien immer K1.pdf heissen, dann mimm doch nicht das k, sondern die vorletzte Stelle des Dateinamens..

Kleb dann bitte auch nen grünen Haken dran.

Gruß
Sternex
Sternex 28.10.2011 um 12:50:41 Uhr
Goto Top
die Dateinamen an sich sind ja immer unterschiedlich und K1 & K2 sind immer die letzten Stellen der Datei.
Man muss nur vorher dran denken bei der Erstellung.

Trotzdem Danke für die Hilfe ;)

MfG
60730
60730 28.10.2011 um 14:04:17 Uhr
Goto Top
Zitat von @Sternex:
die Dateinamen an sich sind ja immer unterschiedlich und K1 & K2 sind immer die letzten Stellen der Datei.
  • na dann...
for /f "delims=K" %%f in ("%~n1") do (  
                        if exist "%Quelle%\%%fK2.pdf" move "%Quelle%\%%fK2.pdf" "%ziel%">nul  
                )
  • raus und
set "working"=="%~n1"  
set "working"=="%working:~-2%"  
move "%Quelle%\%working%K1.pdf" "%ziel%"  
move "%Quelle%\%working%K2.pdf" "%ziel%"  

Man muss nur vorher dran denken bei der Erstellung.
der Bätch - dass es Poweruser gibt, denen der Admin vergessen hat die K Taste vom Keyboard wegzunehmen? *lach*

Trotzdem Danke für die Hilfe ;)

Gruß