Dateien (PDF) umbenennen via batch, teilw. Dateinamen übernehmen, neues Präfix
Hallo zusammen,
ich habe ein relativ einfach zu erklärendes Problem welches ich gern mit einem kleinen Script (batch) lösen möchte:
Ich habe mehrere hundert PDF-Dateien in einem Ordner und möchte diese Kopieren und umbenennen. Dabei sollen die letzten fünf Zeichen erhalten bleiben und zusätzlich ein neues Präfix vergeben werden. Beispiel:
Quell-Pfad: franz_12345.pdf, tina_54321 >> Ziel-Pfad: gesamt_12345.pdf, gesamt_54321
Die letzten fünf Zeichen sind immer eindeutig (Schlüsselattribut aus einer DB).
Ich hoffe auf eure Hilfe!
Gruß,
(Kommentare in Script-Vorschlägen nehme ich mit großem Dank an!)
ich habe ein relativ einfach zu erklärendes Problem welches ich gern mit einem kleinen Script (batch) lösen möchte:
Ich habe mehrere hundert PDF-Dateien in einem Ordner und möchte diese Kopieren und umbenennen. Dabei sollen die letzten fünf Zeichen erhalten bleiben und zusätzlich ein neues Präfix vergeben werden. Beispiel:
Quell-Pfad: franz_12345.pdf, tina_54321 >> Ziel-Pfad: gesamt_12345.pdf, gesamt_54321
Die letzten fünf Zeichen sind immer eindeutig (Schlüsselattribut aus einer DB).
Ich hoffe auf eure Hilfe!
Gruß,
(Kommentare in Script-Vorschlägen nehme ich mit großem Dank an!)
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 325920
Url: https://administrator.de/contentid/325920
Ausgedruckt am: 19.11.2024 um 07:11 Uhr
6 Kommentare
Neuester Kommentar
@echo off
set "quelle=c:\quelle"
set "ziel=c:\ziel"
set "prefix=gesamt"
powershell -Executionpolicy Bypass -Command "gci '%quelle%' -Filter *.pdf | copy-item -Destination {\"%ziel%\%prefix%_$($_.Name -replace '.*(.{5}\.pdf)$)','$1'\"}"
@echo off &setlocal EnableDelayedexpansion
set "quelle=c:\quelle"
set "ziel=c:\ziel"
set "prefix=gesamt"
for %%a in ("%quelle%\*.pdf") do (
set "name=%%~nxa"
set "suffix=!name:~-9!"
copy "%%a" "%ziel%\%prefix%_!suffix!"
)
%%~nxa bedeutet kürze auf Name(n) und Dateierweiterung(x).
Ein for /? in der CMD sagt's dir auch.
Siehe:
http://www.dostips.com/DtTipsStringManipulation.php
Gruß mik
Ein for /? in der CMD sagt's dir auch.
...
Zusätzlich wurde die Ersetzung von Verweisen auf FOR-Variablen erweitert.
Sie können jetzt folgende Syntax verwenden:
%~I - Expandiert %I und entfernt alle umschließenden
Anführungszeichen (").
%~fI - Expandiert %I zu einem vollständigen Dateinamen.
%~dI - erstellt nur den Laufwerkbuchstaben von %I.
%~pI - erstellt nur den Pfad von %I.
%~nI - erstellt nur den Dateinamen von %I.
%~xI - erstellt nur die Dateierweiterung von %I.
%~sI - erstellter Pfad enthält nur kurze Dateinamen.
%~aI - erstellt die Dateiattribute von %I.
%~tI - erstellt Datum und Zeit von %I.
%~zI - erstellt die Dateigröße von %I.
...
set "suffix=!name:~-9!"
Und das ~-9 extrahiert die letzten 9 Zeichen des Dateinamens (Dateierweiterung und Punkt inkl.)Siehe:
http://www.dostips.com/DtTipsStringManipulation.php
Nochmal, vielen Dank!
Keine Ursache.Gruß mik