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-Key: 320422

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

Printed on: April 24, 2024 at 23:04 o'clock

Mitglied: 131381
131381 Nov 09, 2016 updated at 14:41:32 (UTC)
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ß
Member: Kalisser
Kalisser Nov 09, 2016 at 14:44:41 (UTC)
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
Mitglied: 131381
Solution 131381 Nov 09, 2016 updated at 15:35:04 (UTC)
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"  
)
Member: Kalisser
Kalisser Nov 09, 2016 at 15:10:03 (UTC)
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
Member: Snowman25
Snowman25 Nov 09, 2016 at 15:13:23 (UTC)
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