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, 3821 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

String aus einer Datei in eine Textfile exportieren und zusammen mit einer anderen Datei in ein Zip-Archiv packen

gelöst Frage von rombertoBatch & Shell4 Kommentare

Hallo, mit dem Titel habe ich mich etwas schwer getan und ich hoffe, dass es durch meine Ausführung etwas ...

Batch & Shell

2 String aus PDF auslesen und diesen zum Umbenamsen benutzen

Frage von ingo101Batch & Shell8 Kommentare

Hallo zusammen, ich habe folgendes Problem. Mir werden PDF Dateien geliefert, die einen nicht aussagefähigen Namen haben. Diese möchte ...

Neue Wissensbeiträge
Sicherheit

Ungepatchte Remote Code Execution-Lücke in LG NAS

Information von kgborn vor 10 StundenSicherheit

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 16 StundenWindows Update2 Kommentare

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

Microsoft Office

MS Office 2019 ohne OneNote - OneNote App speichert nur in Cloud

Information von Deepsys vor 1 TagMicrosoft Office4 Kommentare

Microsoft zeigt deutlich wohin alles bei Ihnen geht, OneNote 2019 wird es nicht mehr geben, und die Windows 10 ...

Humor (lol)

Warum man sein Gast-WLAN nicht beliebig nennen sollte

Erfahrungsbericht von Henere vor 2 TagenHumor (lol)5 Kommentare

Servus, mal was aus dem Alltag. Zu Hause. Eigentlich wollte ich nur einen weiteren WLAN-AP ins Netz bringen, damit ...

Heiß diskutierte Inhalte
Festplatten, SSD, Raid
Server SSD: NVMe PCIe 3.0 RAID?
Frage von bouneeFestplatten, SSD, Raid15 Kommentare

Hallo liebe Admins, mir stellt sich gerade die Frage, ob ein neuer Server mit SSD NVMe PCIe 3.0 Sinn ...

Sonstige Systeme
Wie Normenkataloge im Unternehmen bereit stellen?
Frage von MuzzepuckelSonstige Systeme14 Kommentare

Hallo Kollegen, ich lese schon lange hier mit, nun mein ersrer Beitrag, bzw. Frage. :-) Wir benötigen für unsere ...

Windows 10
Windows 10 Startmenü-Einstellungen Systemweit festlegen
Frage von flotautWindows 1013 Kommentare

Guten Morgen liebe Admins, wir möchten bei uns am Lehrstuhl demnächst auf Windows 10 umsteigen. Wir installieren unsere PC's ...

LAN, WAN, Wireless
OpenVPN Client Fehlermeldungen
Frage von chris84LAN, WAN, Wireless12 Kommentare

Hallo Zusammen, wir nutzen seit kurzem einen neuen Router und den OpenVPN Client. Die VPN Verbindung klappt; allerdings kommen ...