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, 1642 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 ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Webentwicklung
HTML Output in eine txt Datei mit VisualBasicScript (2)

Frage von coca22COCA zum Thema Webentwicklung ...

Batch & Shell
Merkwürdige Zeilenformatierung in txt Datei (3)

Frage von miczar zum Thema Batch & Shell ...

Batch & Shell
gelöst Mehrere PDF-Dateien per Batch zusammenfügen (1)

Frage von Grimmli zum Thema Batch & Shell ...

Drucker und Scanner
Problem mit Ausdruck von PDF Dateien (4)

Frage von CountryBoy zum Thema Drucker und Scanner ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...