Top-Themen

Aktuelle Themen (A bis Z)

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 umbenennen, Namen aus TXT an variabler Stelle auslessen sowie Ordnerstruktur aus altem Dateinamen

Mitglied: s.lamers

s.lamers (Level 1) - Jetzt verbinden

21.04.2014, aktualisiert 22:12 Uhr, 1475 Aufrufe, 6 Kommentare, 3 Danke

Hallo zusammen,

ich habe folgendes Problem, ich habe einen Ordner mit ca. 6000 PDF's + 6000 TXT Dateien. Es sind eingescannt Faxe, welche von einem OCR-Programm in durchsuchbare PDF Dateien konvertiert wurden. Außerdem wurde der komplette Inhalt der PDF's unter gleichem Dateinamen noch mal als TXT Datei abgespeichert. Es kommen ca. 150 Dateien täglich dazu.

Jetzt steht in einer der ersten 3 Zeilen der Dateiname in der TXT Datei immer hinter dem Wort "liste" und ist immer 8 Zeichen lang. Teilweise kommt es aber auch noch vor, das eine liste über mehrere Seiten geht, weshalb der Dateinamen dann erweitert werden müsste mit einer fortlaufenden Nummer. Für den Fall das das Wort liste nicht gefunden wird ist es was manuelles, weshalb auch diese erkennbar sein sollten.

Zur Veranschaulichung mal ein kleines Beispiel:

Dateien sind gespeichert nach dem Muster:
C:\Eingang\21.04.2014_0001.pdf
C:\Eingang\21.04.2014_0001.txt
C:\Eingang\21.04.2014_0002.pdf
C:\Eingang\21.04.2014_0002.txt
C:\Eingang\21.04.2014_0003.pdf
C:\Eingang\21.04.2014_0003.txt
C:\Eingang\21.04.2014_0004.pdf
C:\Eingang\21.04.2014_0004.txt

Ergebniss sollte in etwa so ausschauen:
C:\Sortiert\2014\04\21\11111111_1-2.pdf (liste 1 von 2 Seiten)
C:\Sortiert\2014\04\21\11111111_2-2.pdf (liste 2 von 2 Seiten)
C:\Sortiert\2014\04\21\22222222.pdf (liste 1 Seite lang)
C:\Sortiert\2014\04\21\manuell_1-1.pdf (Sort liste nicht gefunden)

Die TXT Dateien können nach dem sortieren gelöscht werden.

Ist so etwas überhaupt lösbar über eine Batchdatei? Gibt es jemanden, der mir hierbei helfen kann?

Vielen Dank.

Gruß
Mitglied: Xaero1982
LÖSUNG 21.04.2014, aktualisiert um 22:12 Uhr
Tach,

noch nicht ganz klar:

C:\Sortiert\2014\04\21\11111111_1-2.pdf (liste 1 von 2 Seiten)
C:\Sortiert\2014\04\21\11111111_2-2.pdf (liste 2 von 2 Seiten)

Es gibt doch aber nur eine PDF oder? Zumindest ausgehend von deinem Muster.

Und ich denke schon, dass das lösbar ist. Da wird der Bastla oder so sicher was haben.

Gruß
Bitte warten ..
Mitglied: s.lamers
21.04.2014 um 14:39 Uhr
Moin,

noch einmal zur Verdeutlichung.

das Muster:
C:\Eingang\21.04.2014_0001.pdf (Entspricht der 1sten Seite des Faxes und ist liste 11111111 und davon die Seite 1)
C:\Eingang\21.04.2014_0001.txt
C:\Eingang\21.04.2014_0002.pdf (Entspricht der 2ten Seite des Faxes und ist liste 11111111 und davon die Seite 2)
C:\Eingang\21.04.2014_0002.txt
C:\Eingang\21.04.2014_0003.pdf (Entspricht der 3ten Seite des Faxes und wäre jetzt liste 22222222 mit nur 1ner Seite)
C:\Eingang\21.04.2014_0003.txt
C:\Eingang\21.04.2014_0004.pdf (Entspricht der 4ten Seite des Faxes und enthält das Wort liste nicht, ist somit etwas manuelles und davon die 1te Seite)
C:\Eingang\21.04.2014_0004.txt

da das alles Faxe sind, welche eingescannt wurden, sind die zusammenhängende Listen nicht mehr in einer Datei zusammen. Und es kommt leider vereinzelt vor, das einige dieser listen 2-3 Seiten lang sind. Haben aber in diesem Fall auch die selbe Kopfzeile, nur das sich dann die Listennummer wiederholen würden, weshalb der Gedanke _1-2, _2-2 dranzuhängen kommt. Es könnte ja aber auch durchaus mal vorkommen, das das OCR Programm eine Nummer falsch erkennt (statt einer 6 eine 8) und wenn dann diese Nummer doppelt erkannt werden sollte, möchte ich vermeiden, das eine der Dateien überschrieben wird.

In der TXT Datei steht dann teilweise in der 1 - 2 Zeile etwas was manuell raufgekritzelt wurde, und dann in der 3ten Zeile kommt nach einem variabel langen Text das Wort liste und danach die 8 Zahlen welche der Dateiname werden sollten. Ist aber nichts dazugeschrieben worden, steht diese Zahl auch schon mal in Zeile 1. Das Wort liste wiederholt sich noch einmal in der letzten Zeile jeder Datei, und gibt dort Preis von wo aus sie verschickt worden ist. (5 stellige Nummer davor sowie einige Zeichen hinter dem Wort)

Gruß
Bitte warten ..
Mitglied: bastla
LÖSUNG 21.04.2014, aktualisiert um 22:12 Uhr
Hallo s.lamers und willkommen im Forum!

Oberflächlich getestet etwa so:
01.
@echo off & setlocal 
02.
Set "Ein=C:\Eingang" 
03.
set "Aus=C:\Sortiert" 
04.
set "Such=liste" 
05.
set /a ZeilenAnzahl=3 
06.
set "Typ=pdf" 
07.
set /a Stellen=2 
08.
 
09.
for %%i in ("%Ein%\*.txt") do call :ProcessFile "%%i" 
10.
goto :eof 
11.
 
12.
:ProcessFile 
13.
for /f "tokens=1-3 delims=._" %%a in ("%~n1") do set "Tag=%%a" & set "Monat=%%b" & set "Jahr=%%c" 
14.
set "Ziel=%Aus%\%Jahr%\%Monat%\%Tag%" 
15.
md "%Ziel%" 2>nul 
16.
 
17.
set "Zeile=" & set "Name=manuell" 
18.
for /f "tokens=1* delims=:" %%a in ('findstr /ni "%Such%" %1') do if %%a leq %ZeilenAnzahl% set "Zeile=%%b" 
19.
if not defined Zeile goto :Check 
20.
call set "Zeile=%%Zeile:*%Such%=%%" 
21.
for /f %%a in ("%Zeile%") do set "Name=%%a" 
22.
set "Name=%Name:~,8%" 
23.
 
24.
:Check 
25.
set /a Nr=1000001 
26.
set "Dateiname=%Name%.%Typ%" 
27.
:Loop 
28.
if not exist "%Ziel%\%Dateiname%" copy %1 "%Ziel%\%Dateiname%">nul & goto :eof 
29.
set /a Nr+=1 
30.
call set "Dateiname=%Name%_%%Nr:~-%Stellen%%%.%Typ%" 
31.
goto :Loop
Da Du die Inhalte der Zeilen mit "liste" nicht näher beschrieben hast, gehe ich davon aus, dass zwischen "liste" und dem 8-stelligen Dateinamen allenfalls eine unbestimmte Anzahl von Leerzeichen, aber kein anderer Text stehen kann.

In den Zeilen 4 und 5 kannst Du den Suchbegriff und die Anzahl der Zeilen ab Dateianfang, in denen dieser Begriff gesucht werden soll, festlegen - lt Deiner Vorgabe sind das "suche" und 3 Zeilen.

Eine Einschränkung gibt es hinsichtlich der Benennung von mehrseitigen Listen: Es wird erst ab der zweiten Seite eine 2-stellige (die Stellenanzahl kannst Du in Zeile 7 mit max 6 festlegen) Seitennummer (ohne Gesamtzahl der Seiten - diese steht ja meines Wissens nicht in der ersten Datei und ist damit vorweg nicht bekannt) hinzugefügt, sodass das Ergebnis für die ersten beiden Dateien Deines Beispiels (mit 2-stelliger Seitennummer) so aussieht:
C:\Sortiert\2014\04\21\11111111.pdf 
C:\Sortiert\2014\04\21\11111111_02.pdf
Auch für Dateien, in denen "liste" nicht gefunden wurde, wird bei Bedarf eine 2-stellige Laufnummer hinzugefügt, sodass also zB
C:\Sortiert\2014\04\21\manuell.pdf 
C:\Sortiert\2014\04\21\manuell_02.pdf 
C:\Sortiert\2014\04\21\manuell_03.pdf
entstünden.

Grüße
bastla
Bitte warten ..
Mitglied: s.lamers
21.04.2014 um 22:26 Uhr
Guten Abend bastla,

vielen Dank für das Script ;) Habe eine Kleinigkeit geändert, da mir hier die TXT Dateien kopiert wurden und nicht die PDF's.

Zeile 28:
if not exist "%Ziel%\%Dateiname%" copy"%~n1.%Typ%" "%Ziel%\%Dateiname%">nul & goto :eof
Ansonsten ist es genau das was ich gesucht habe :D

Danke, und einen schönen Abend noch.

Gruß
s.lamers
Bitte warten ..
Mitglied: bastla
21.04.2014 um 23:44 Uhr
Hallo s.lamers!

Oberflächlich getestet war leider genau die richtige Beschreibung ...

Freut mich, dass Du's hinbekommen hast.

Grüße
bastla
Bitte warten ..
Mitglied: s.lamers
22.04.2014 um 16:26 Uhr
Hallo bastla,

mit dieser Vorlage ;) Alleine hätte ich das allerdings niemals geschafft.

Danke

Gruß

s.lamers
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Datei mit Variablem namen in Variablem Verzeichnis umbenennen

Frage von PinkFLuffyUnicornBatch & Shell6 Kommentare

Moin Leute,i bims mal wieder. ich versuche nun seit ner gefühlten Ewigkeit, folgendes Script zum laufen zu bringen. es ...

Windows Tools

Dateinamen automatisch umbenennen

Frage von chrisschmitt93Windows Tools2 Kommentare

Hallo zusammen, könnte mir freundlicherweise einer ein Skript zukommen lassen , das automatisch alle Ä in AE ,Ö ind ...

Batch & Shell

Dateinamen mit Powershell umbenennen ???

gelöst Frage von lexuraBatch & Shell2 Kommentare

Hallo, Ich benötige ein Script mit dem ich eine MP3 Sammlung umbenennen kann. Die Dateien lauten im Ursprung alle ...

Batch & Shell

Dateinamen Umbenennen nach Ersetzten

gelöst Frage von batchnewbieBatch & Shell9 Kommentare

Hallo, ich experimentiere ein wenig und bin ein einem Punkt, wo ich nicht weiter weiß. Ich lese ein Dateinamen ...

Neue Wissensbeiträge
Humor (lol)
IoT-Gefahr: Smartes Aquarium leckt!
Information von Lochkartenstanzer vor 1 TagHumor (lol)3 Kommentare

Moin, Die IoT-Manie hat weitere Opfer gefunden. Ein Casino-Leck durch ein smartes Aquarium: Allerdings haben sie kein Wasser, sondern ...

Router & Routing

Alte Fritzbox 7270 mit VPN und SIP-Telefonie hinter O2 Homebox 6641 als "Modem"

Erfahrungsbericht von the-buccaneer vor 1 TagRouter & Routing3 Kommentare

Nun war es soweit: Auch O2 hat mich mit VOIP zwangsbeglückt. Heute am Privatanschluss, in 2 Wochen ist das ...

Sicherheit

Ungepatchte Remote Code Execution-Lücke in LG NAS

Information von kgborn vor 2 TagenSicherheit

Nutzt wer LG NAS-Einheiten? In den NAS-Einheiten der LG Network Storage-Einheiten gibt es eine sehr unschöne Schwachstelle, die einen ...

Windows Update

Neue Version KB4099950 NIC Einstellungen gehen verloren

Information von sabines vor 2 TagenWindows Update2 Kommentare

Es ist eine neue Version des KB4099950 verfügbar, die das Problem mit den verlorenen Netzwerkeinstellungen lösen soll. Das Datum ...

Heiß diskutierte Inhalte
Router & Routing
Mikrotik: Routing zwischen Interfaces mit Geräten ohne Gateway
Frage von TonLichtVideoRouter & Routing18 Kommentare

Hallo zusammen, ich komme aus dem Veranstaltungstechnik Bereich und habe zwei Netze um verschiedene Hardware zu Remoten. CONTROL1 192.168.1.0/24 ...

Linux Netzwerk
Raspberry Pi 3: WLAN Power save deaktivieren
Frage von nordie92Linux Netzwerk14 Kommentare

Moin moin, mein Raspberry Pi 3 Model B benötigt eine dauerhaft aktive WLAN-Verbindung. Leider bricht die WLAN-Verbindung nach einigen ...

SAN, NAS, DAS
Entscheidung SAN Dell oder HP
Frage von VincorSAN, NAS, DAS13 Kommentare

Hallo, wir wollen uns für unsere Hyper V Umgebung eine neue SAN Anschaffen. Es laufen 30 VM's darunter, DC; ...

Vmware
Server 2008 r2 vmware terminalserver
Frage von MasterCVmware10 Kommentare

Guten Abend zusammen, ich hoffe , dass einer von euch mir weiterhelfen kann ,bei meinem kack Problem ! Ist ...