kalisser
Goto Top

1 PDF entsprechend der Anzahl duplizieren

Hallo zusammen,

folgendes Problem stellt sich mir gerade:

Ich habe um die 100 PDFs, die wie vom Schema immer gleich aufgebaut sind:

123456, 456789, 998877, 445566.pdf
112233, 223344.pdf
995511.pdf

Also immer eine 6-stellige Zahl (und optional gefolgt von beliebig vielen Kommata und Leerzeichen).

Mein Ziel ist es, diese PDFs entsprechend der Anzahl der Zahlen zu duplizieren und diese dann nach der Zahl zu benennen.

Das heißt aus

123456, 456789, 998877, 445566.pdf

sollen 4 einzelne Dateien erstellt werden mit Namen:

123456.pdf
456789.pdf
998877.pdf
445566.pdf


Gibt es da einen kurzen Batch-Befehl, der das fix kann?

Mit Advance Renamer habe ich es vergeblich auch schon versucht.

Vielen Dank für eure Mühen und verschneite Grüße aus Hamburg
Kalisser

Content-ID: 320422

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

Ausgedruckt am: 24.11.2024 um 22:11 Uhr

131381
131381 09.11.2016 aktualisiert um 15:41:32 Uhr
Goto Top
Powershell
gci 'c:\Daten' -Filter *.pdf -pipelinevariable file | %{  
    $numbers = $_.Basename.Split(',') | %{$_.trim()}  
     if ($numbers.Count -gt 1){
     $numbers | %{
        copy-item $file -Destination "$($file.Directoryname)\$($_).pdf"  
    }
    }
}
Gruß
Kalisser
Kalisser 09.11.2016 um 15:44:41 Uhr
Goto Top
Hallo Mikrotik,

vielen Dank für deinen schnellen Vorschlag.

Ich benötige diesen Code für den Firmenrechner und hier ist durch die Sicherheitslinie kein Powershell erlaubt.
Kann man das einfach in eine Batch umformen?

Viele Grüße
Kalisser
131381
Lösung 131381 09.11.2016 aktualisiert um 16:35:04 Uhr
Goto Top
Kann man.

Etwa so
@echo off & setlocal
for %%a in ("C:\Daten\*.pdf") do (  
    for %%b in (%%~na) do copy "%%a" "%%~dpa%%b.pdf"  
)
Kalisser
Kalisser 09.11.2016 um 16:10:03 Uhr
Goto Top
Wow,

ich bin immer wieder begeistert, wie schnell einem hier geholfen wird face-smile

Genau das habe ich gesucht. Es funktioniert perfekt.

Schönen Abend noch und viele Grüße
Kalisser
Snowman25
Snowman25 09.11.2016 um 16:13:23 Uhr
Goto Top
Hallo @Kalisser,

probier's mal so:
Benutzung: <script.bat> "123456, 456789, 998877, 445566.pdf"
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION

SET extension=%~x1
FOR /F "delims=, tokens=*" %%i IN ("%~1")  DO SET a=%%~i  
FOR /F "delims=."          %%j IN ("%a%") DO SET a=%%~j  
FOR                        %%k in ( %a% ) DO COPY "%~1" "%%k%extension%"  

REM DEL "%~1"  

Wenn du willst, dass die Ursprungsdatei gelöscht wird, Entferne das "REM" in der letzten Zeile.
ACHTUNG! Es wird nicht überprüft, ob die Dateien ordentlich kopiert wurden! Ich würde dir nicht empfehlen, automatisch zu löschen.

Gruß,
@Snowman25