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 String in einem Textfile auslesen

Mitglied: BrandonQuest

BrandonQuest (Level 1) - Jetzt verbinden

04.07.2009, aktualisiert 11:03 Uhr, 3810 Aufrufe, 2 Kommentare

Moin an alle!
Da ich absolut neu (seit gestern) auf dem Gebiet bin, mutet mein Problem zwar banal an, nur sitze ich jetzt
seit einem Tag davor, habe ein paar Probleme gelöst, hänge aber definitiv an folgendem:

aus einem Ordner mit etlichen Protokoll.txt (gewandelte copy eines PDF),
werden aus jeder Datei

das eingetragene Datum,
Protokollnummer und
eine ID-Nummer

ausgelesen, um die ursprüngliche PDF-Datei danach entsprechend umzubenennen und einen Eintrag über
diesen Vorgang in einer weiteren Sammeldatei anzulegen.

Also: die Datei, mit momentan kryptischem Namen soll dann "Datum_ID.pdf" heissen,
und die Protokollnummer fortlaufend in einer weiteren Textdatei abgelegt werden.

Datum und ID habe ich nun schon herausgefunden:



01.
 
02.
@echo off & setlocal 
03.
set "Ordner=c:\TEST" 
04.
set "Typ=pdf" 
05.
cd /d "%Ordner%" 
06.
for %%f in (*.%Typ%) do call :ProcessFile "%%f" 
07.
goto :eof 
08.
 
09.
:ProcessFile 
10.
Set dateiname_alt=%~f1 
11.
Start /wait Pdftotext.exe %dateiname_alt% %dateiname_alt:~0,-4%.txt 
12.
 
13.
for /f "delims=" %%i in ('findstr /C:"Datum der Bearbeitung" %dateiname_alt:~0,-4%.txt') do @Set "ln=%%i" 
14.
 
15.
set Datum=%ln:~25,10% 
16.
 
17.
for /F "tokens=3 delims= " %%i IN ('findstr /C:"Protokollnummer Nr." %dateiname_alt:~0,-4%.txt') do @Set "ln=%%i" 
18.
 
19.
set Protokollnummer=%ln% 
20.
 

Hier wird also ein pdf-File genommen,
mit pdftotext.exe aus dem Open-Source-Project xpdf in txt gewandelt,
und danach die Spalten mit meinen Infos gesucht und
Datum und Protokollnummer von störenden Zeichen
befreit an entsprechende Variablen übergeben.

Bis hierhin waren die Infos in Zeilen, deren Anfang immer gleich lautete, und die somit leicht zu finden gewesen sind.

Die ID jedoch ist in einer eigenen Zeile und kann variieren.

Sie kommt jedoch jedoch immer zwei Zeilen nach dem Begriff "ID-No:"
und ist alleinstehend in einer Zeile.
Beispiel:

ID-Nr.:
ID-No:


WSSD-GHZUQ1-001

Typ:
Type:



Ich müsste also in der Datei suchen,bis "ID-No:" gefunden wird, und dann zwei Zeilen
weiter den Inhalt der entsprechenden Zeile bis zum Ende auslesen und in eine
Variable schreiben.

Wie ich dann den Dateinamen zusammenbastle, die PDF-Datei umbenenne, und die Protokollnummer
in eine Textdatei schreibe, wird dann wohl den Rest des Tages in Anspruch nehmen

Für etwaige Hilfe / Verbesserungsvorschläge bin ich zutiefst dankbar!

Beste Grüße
Brandon
Mitglied: bastla
04.07.2009 um 12:14 Uhr
Hallo BrandonQuest und willkommen im Forum!

Die entsprechende Sequenz könnte so aussehen:
01.
::Pfad der Textdatei ermitteln und speichern 
02.
set "dateiname_neu=%~dpn1.txt" 
03.
 
04.
::alten Wert von %Zeile% entfernen 
05.
set "Zeile=" 
06.
for /f "delims=:" %%i in ('findstr /n /c:"ID-No:" "%dateiname_neu%"') do set "Zeile=%%i" 
07.
::alten Inhalt von %ID% loeschen 
08.
set "ID=" 
09.
::Falls Zeile mit "ID-No." gefunden wurde, uebernacheste Zeile auslesen 
10.
::(dazu alles bis zur naechsten Zeile ueberspringen und nur die dann erste Zeile verwenden). 
11.
if defined Zeile ( 
12.
    set /a Zeile+=1 
13.
    for /f "usebackq skip=%Zeile%" %%i in ("%dateiname_neu%") do if not defined ID set "ID=%%i" 
14.
15.
::Falls keine ID gefunden wurde, Bearbeitung (dieser Datei) abbrechen 
16.
if not defined ID echo "Keine ID gefunden" & goto :eof
Anmerkung: Da der Pfad der Textdatei öfter benötigt wird, bietet es sich an, diesen in einer Variablen (%dateiname_neu%) festzuhalten, wobei die in Zeile 2 dargestellte Schreibweise etwas flexibler ist - konkret: Verwende alle Bestandteile des Pfades bis auf den letzten Punkt und den Teil dahinter (= .Dateityp; siehe dazu "for /?" gegen Ende).

Grüße
bastla
Bitte warten ..
Mitglied: BrandonQuest
04.07.2009 um 13:15 Uhr
Vielen Dank, bastla!

Ich bin erst in einigen Stunden wieder da und werde es dann gleich verdauen, ausprobieren und rückmelden!

Gruß
Brandon
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

String Zeichenpaare auslesen und bearbeiten

Frage von ahstaxBatch & Shell6 Kommentare

Moin, ich möchte gerne einen String der Form "41004800", der beliebig lang sein kann, in Zeichenpaare aufteilen, also in ...

Batch & Shell

String aus Spalte in csv auslesen und ersetzen

Frage von mIsSteRBatch & Shell4 Kommentare

Hallo, meine aktuelle Frage bezieht sich auf diese Frage von Dienstag. Ich muss nun eine csv auslesen und dort ...

Batch & Shell

Text aus einem Textfile auslesen und in Zeile 1 hinein kopieren

Frage von IronangelBatch & Shell2 Kommentare

Hallo zusammen, dies ist mein erster Beitrag. Ich hoffe hier Hilfe zu finden. Ich benötige einen Befehl für ein ...

PHP

Bestimmten HTML-Code aus String auslesen

gelöst Frage von pennertennerPHP2 Kommentare

Hallo liebe Admins. :) Ich habe folgendes Problem. Ich habe einen HTML-Code (komplette Webseite) in einem String als Variable. ...

Neue Wissensbeiträge
Vmware
VMware Update für den ESXi 5.5 verfügbar
Information von sabines vor 11 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 15 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ör15 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: ...