mrbonsai
Goto Top

Batch die anhand von PDFs Ordner erstellt und diese reinkopiert

Hallo Leute,

ich habe momentan ein kleines Problem. Ich habe sehr viele verschiedene PDFs die ich momentan per Hand immer in einen Ordner packen muss, der Ordnername ist dabei immer gleich der PDF. Das Ganze muss gemacht werden, da ich dann immer noch zusätzliche PDFs die diesen Fall betreffen in diesem Ordner, bzw. mit der urspr. PDF zusammen archivieren muss.

Da ich manchmal über das Wochenende an die 100 neue PDFs bekomme habe ich mich gefragt ob man das nicht automatisieren kann. Bei Windows gibt es ja Batch, leider kenne ich mich hier zu wenig aus um zu wissen ob es funktioniert.

Hier noch ein kleines Beispiel:


<<Download-Ordner>>

erstes.pdf
zweites.pdf
drittes.pdf


Das muss ich, wie folgt archivieren

<<Hauptarchiv>>
<<erstes>> erstes.pdf
<<zweites>> zweites.pdf
<<drittes>> drittes.pdf
.....


Ich hoffe ihr könnt mir hierbei helfen!

Content-Key: 193531

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

Printed on: April 25, 2024 at 04:04 o'clock

Member: bastla
bastla Oct 31, 2012 updated at 08:41:59 (UTC)
Goto Top
Hallo MrBonsai!

Sollte sich (ungetestet) etwa so lösen lassen:
@echo off & setlocal
set "Quelle=D:\Download-Ordner"  
set "Ziel=D:\Hauptarchiv"  

for %%i in ("%Quelle%\*.pdf") do (  
    md "%Ziel%\%%~ni" 2>nul  
    echo move "%%i" "%Ziel%\%%~ni"  
)
pause
Bitte beachten: Wenn es in einem bestehenden Ziel-Ordner bereits eine gleichnamige Datei gibt (also etwa in "Hauptarchiv\erstes" eine "erstes.pdf" enthalten ist) und im "Download"-Ordner eine weitere "erstes.pdf" ankommt, wird die sich im Ziel-Ordner befindende Datei ohne Rückfrage überschrieben.

Für das Testen ist das allerdings noch durch das "echo" in Zeile 7 entschäft, da dadurch zunächst überhaupt keine Dateien verschoben, sondern die Verschiebe-Befehle nur angezeigt werden; die Zielordner werden aber bereits erstellt.

Grüße
bastla
Member: MrBonsai
MrBonsai Oct 31, 2012 at 08:53:16 (UTC)
Goto Top
Wow, das ging erstens schnell und funktioniert echt super!! Danke für die Hilfe!
Member: Metzger-MCP
Metzger-MCP Oct 31, 2012 updated at 09:12:57 (UTC)
Goto Top
Moin Bonsai

@for /f "delims=" %%i IN ('dir /A:-d /b c:\xxx\*.pdf') DO @md "%%~dpni" & move "%%~dpnxi" "%%~dpni\"

c:\xxx\stellt den Pfad da wo die Datein liegen ...

ist ein Einzeiler ...

LG Uwe

p.s. hatte erst noch getestet face-smile
Member: bastla
bastla Oct 31, 2012 updated at 09:27:09 (UTC)
Goto Top
@ Metzger-MCP
hatte erst noch getestet face-smile
Hast Du auch getestet, was passiert, wenn der Batch nicht aus dem Quellpfad (und es gäbe auch abweichend davon noch einen gewünschten Zielpfad zu berücksichtigen) heraus gestartet wird ("dir /b" ohne "/s" liefert nur Dateinamen, keine Pfade)?

Und nur als Anmerkung: Abgesehen davon, dass damit "%%i" genügen würde, lässt sich "%%~dpnxi" auch etwas eleganter "%%~fi" schreiben ...

Grüße
bastla