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, 1464 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 ...

Batch & Shell

PDF Dateien nach Inhalt einer TXT Datei umbenennen

gelöst Frage von Chris1979Batch & Shell2 Kommentare

Hallo zusammen, ich stehe gerade vor einem Problem und hätte eine Frage zur Umsetzung. Ich bin mit der Batch ...

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 ...

Neue Wissensbeiträge
Vmware
VMware Update für den ESXi 5.5 verfügbar
Information von sabines vor 18 StundenVmware

Nach dem ganzen Hickhack um Update mit Microcode Anpassungen und Rückzug, gibt es nun für den ESXi 5.5 ein ...

CPU, RAM, Mainboards

Meltdown und Spectre: Intel zieht Microcode-Updates für Prozessoren zurück

Information von keine-ahnung vor 22 StundenCPU, RAM, Mainboards5 Kommentare

Moin, extrem lutztig. Nur gut, dass ich noch nicht beim Probanden-Bingo mitgemacht habe :-) LG, Thomas

Router & Routing
PfSense als Addon auf QNAP
Information von magicteddy vor 1 TagRouter & Routing7 Kommentare

Moin, für Spielereien eine ganz nette Idee aber ich fürchte das soetwas auch als echte Firewall genutzt wird: In ...

Datenschutz

Teamviewer kommt für IoT-Geräte wie den Raspberry Pi

Information von magicteddy vor 1 TagDatenschutz1 Kommentar

Moin, jetzt werden IoT Geräte endgültig zur Wanze? Anscheinend kann man auf einem Dashboard seine Geräte visualisieren Ich stelle ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Preis für Wartungsvertrag ok?
gelöst Frage von a-za-zNetzwerkmanagement26 Kommentare

Hallo! Mal ne Frage, weil ich mich mit dem akzeptablen Preis für einen Reaktionszeitvertrag nicht auskenne. Meine Firma hat ...

Windows Server
TEMP-Profile
gelöst Frage von Forseti2003Windows Server21 Kommentare

Guten Morgen, wer kennt sie nicht, die lieben Temporären Benutzerprofile, vorallem immer dann, wenn man sie am wenigsten braucht. ...

Multimedia & Zubehör
Welches Tablet für die Verkäufer?
Frage von Hendrik2586Multimedia & Zubehör16 Kommentare

Guten Morgen meine Lieben, vielleicht könnt ihr mir ja helfen. Es geht um unsere Außendienstmitarbeiter /Verkäufer. Sie sollen demnächst ...

Ubuntu
Ubuntu - Routing mit 2 Netzwerkkarten?
Frage von gabrixlUbuntu13 Kommentare

Hei Folgende Situation: Ich habe zwei virtuelle Maschinen: 1 - Server für DHCP, DNS und Routing - Netzwerkkarte 1: ...