Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

PDF Dateien nach Inhalt einer TXT Datei umbenennen

Frage Entwicklung Batch & Shell

Mitglied: Chris1979

Chris1979 (Level 1) - Jetzt verbinden

21.03.2014, aktualisiert 18:54 Uhr, 1666 Aufrufe, 2 Kommentare, 1 Danke

Hallo zusammen,

ich stehe gerade vor einem Problem und hätte eine Frage zur Umsetzung.
Ich bin mit der Batch Programmierung nicht wirklich vertraut.

Folgendes Problem:
Ich erzeuge dynamisch 17 PDF Dateien die alle nach der Syntax "xxx000.00xx1_000.pdf aufgebaut sind
Der Dateiname ist immer 16 stellig.
Die hintere 3 stellige Zahl zählt dabei nach oben (also 1. PDF = 001, 2.PDF = 002, usw)

In einer Textdatei im gleichen Verzeichnis stehen in den ersten 17 Zeilen Wörter, die diese PDF Dateien bekommen sollen.
Danach kommt noch dynamisch unendlich lang, irgendwas anderes, dass ich aber nicht brauche.

Die Textdatei sie wie folgt aus:
Zeile 1: xxx000.00xx0 _ABC_ 000
Zeile 2: xxx.000.00xx0 _DEF_ 000
Zeile 3: xxx.000.00xx0 _GHI_ 000
usw.

(Wichtig ist hier, dass die Blöcke in 3 Teile unterteilt sind, mit jeweils einem Leerzeichen dazwischen. Der Dateiname soll aber natürlich ohne die Leerzeichen erzeugt werden)

Ich möchte gerne erreichen, dass die erste PDF Datei eben mit der ersten Zeile der TXT Datei umbenennt wird, 2. PDF mit 2. Zeile usw. bis alle 17 Dateien umbenannt wurden.

Was noch zu erwähnen ist:
Der Name der Textdatei ist dynamische, stimmt aber immer mit den ersten 12 Stellen der PDF's überein (also: xxx000.00xx0). Der Inhalt aber immer identisch.

Könnt ihr mir helfen hier eine Lösung zu bekommen?

Edit: Betriebsystem ist Win7.

Vielen Dank bereits im Voraus!

Chris
Mitglied: bastla
LÖSUNG 21.03.2014, aktualisiert um 18:54 Uhr
Hallo Chris1979 und willkommen im Forum!

Wenn ich das einigermaßen richtig verstanden haben sollte, könnte das etwa so gehen:
01.
@echo off & setlocal enabledelayedexpansion 
02.
set "Ordner=D:\Ordner mit den pdf-Dateien" 
03.
set "Dateien=???000.00???_*.pdf" 
04.
 
05.
pushd "%Ordner%" 
06.
for /f "tokens=1-4 delims=._" %%a in ('dir /b "%Dateien%" 2^>nul') do ( 
07.
    set "Datei=%%a.%%b.txt" 
08.
    if exist "!Datei!" ( 
09.
        set /a Nr=1%%c-1000 
10.
        for /f "tokens=2-4 delims=: " %%i in ('findstr /n "." "!Datei!"^|findstr /b "!Nr!:"') do echo ren "%%a.%%b_%%c.%%d" "%%i%%j%%k.%%d" 
11.
12.
13.
popd 
14.
pause
Solange in Zeile 10 das "echo" vor dem "ren" steht, werden (zum Testen) die Umbenenn-Befehle nur angezeigt - wenn das Testergebnis sinnvoll aussieht, einfach dieses "echo" entfernen ...

Sollte übrigens die Textdatei nicht den Dateityp ".txt" haben, wäre die Zeile 7 entsprechend anzupassen.

Grüße
bastla
Bitte warten ..
Mitglied: Chris1979
21.03.2014 um 18:55 Uhr
Hallo bastla,

perfekt das funktioniert wunderbar.

VIELEN VIELEN DANK!

Grüße
chris
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Per Batch eine XLS-Datei in eine TXT-Datei umwandeln (5)

Frage von skiing69 zum Thema Batch & Shell ...

Batch & Shell
gelöst Zeiten in .txt datei auslesen und Differenz berechnen (10)

Frage von meex87 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Router & Routing

PfSense auf Supermicro Intel Xeon D-15x8 SoC Bare Bone

Tipp von Dobby zum Thema Router & Routing ...

Windows Server

Exchange 2010 auf Windows Server 2016 und AD

(2)

Tipp von Herbrich19 zum Thema Windows Server ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Brauche Hilfe: Mit (schnellem) WLAN Strecke überbrücken (19)

Frage von pierrehansen zum Thema LAN, WAN, Wireless ...

Basic
Programmierung von Windows Programmen (10)

Frage von Ghost108 zum Thema Basic ...

C und C++
Fehlendes verständiss von C und C++ (8)

Frage von zelamedia zum Thema C und C ...