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

Mit Batch Suchbegriff in .txt finden und die nachfolgenden 8 Stellen auslesen und in neue Datei schreiben

Frage Entwicklung Batch & Shell

Mitglied: alfabravo

alfabravo (Level 1) - Jetzt verbinden

28.05.2009, aktualisiert 11:56 Uhr, 4139 Aufrufe, 8 Kommentare

Hallo Admins,

Ich habe eine Datei Import.txt mit folgendem Inhalt:

Der Vorgang mit Aktenzeichen: 12345678 ist erledigt!
Der Vorgang mit Aktenzeichen: 01234567 ist erledigt!
Ein neuer Vorgang mit Aktenzeichen: 34567012 wurde erstellt.
Der Vorgang mit Aktenzeichen: 45670123 ist erledigt!
Ein neuer Vorgang mit Aktenzeichen: 23456701 wurde erstellt.
Ein neuer Vorgang mit Aktenzeichen: 70123456 wurde erstellt.


Daraus möchte ich jeweils Zeile für Zeile das 8-stellige Aktenzeichen auslesen, welches sich immer hinter dem Suchbegriff 'Aktenzeichen: ' befindet. Das Ergebnis soll in eine neue Datei (Export.txt) geschrieben werden. So soll das ganze aussehen:


12345678
01234567
34567012
45670123
23456701
70123456


Vielen Dank & Gruß !!
Mitglied: JT
28.05.2009 um 12:33 Uhr
Hallo,

Du suchst also sowas hier?

Const ForReading = 1
Dim test
Set FSO=CreateObject("Scripting.FileSystemObject")
Set File = FSO.OpenTextFile("c:\import2.txt", ForReading, False)
Set FSI = CreateObject("Scripting.FileSystemObject")
Set file2 = FSI.CreateTextFile("C:\export.txt", True)
While Not File.AtEndOfStream
text = File.readline
Set Regex = CreateObject("Vbscript.Regexp")
With Regex
.Pattern = "\D"
.Global = True
NurZahlen = .Replace(text, "")
file2.WriteLine(nurzahlen)
End With
Set Regex = Nothing
Wend
File.Close
file2.close

Ist nur etwas schnell zusammen geflickt.
Aber denke es reicht für dein Vorhaben.


Gruß
JT

edit: Ist keine Batch! Speicher es als Datei.VBS
Bitte warten ..
Mitglied: Woolfsmann
28.05.2009 um 12:45 Uhr
Hi,

hört sich nach ner Arbeitsanweisung für nen Praktikanten an ... oder nen Auftrag an nen Dienstleister ..

Was hast du bisher geschrieben ?
Wie sind deine Ansätze?

Wenn du es in Batch Schreiben möchtest soltest du dir die For Schleife mal angucken.


Um hier auch was Produktives zu schreiben

Ich kann Batch nich so dolle aber Perl krieg ich hin. Da kannst du dir ja dann was abgucken für die Batch.

01.
#\usr\bin\perl -w 
02.
 
03.
open (IN, "<Import.txt") or die "Can't open Import\n"; 
04.
open (OUT, ">export.txt")or die "Can't open Export\n"; 
05.
@Import=<IN>; 
06.
foreach $imp (@Import) 
07.
08.
    $imp=~/(\d+)/; 
09.
	print OUT "$1\n"; 
10.
11.
close IN; 
12.
close OUT;

gruß
Woolfsmann
Bitte warten ..
Mitglied: alfabravo
28.05.2009 um 16:44 Uhr
Danke für Eure Tipps.

Die Funktion ist Bestandteil einer größeren Batchdatei, von daher sollte es schon über Batchbefehle laufen...

Mein Problem besteht hauptsächlich darin, dass das ganze in einer Schleife ausgeführt bzw. Zeile für Zeile abgearbeitet wird. Für das Auslesen des 8-stelligen Aktenzeichens habe ich momentan diese Lösung:

---snip---
@echo off & setlocal

set "Quelle=Import.txt"

for /f "tokens=2 delims=:" %%i in ('findstr "Aktenzeichen: " %Quelle%') do set Wert=%%i
set Aktenzeichen=%Wert:~1,8%

echo>> export.txt %Aktenzeichen%
---snip---
Bitte warten ..
Mitglied: bastla
28.05.2009 um 16:45 Uhr
Hallo alfabravo!

Soferne Du Dich auf den Doppelpunkt als Trennzeichen verlassen kannst, sähe ein Batch dazu etwa so aus:
01.
@echo off & setlocal 
02.
set "Ein=D:\Import.txt" 
03.
set "Aus=D:\Aktenzeichen.txt" 
04.
 
05.
if exist "%Aus%" del "%Aus%" 
06.
for /f "tokens=1* delims=:" %%i in ('findstr "Aktenzeichen:" "%Ein%"') do for /f %%a in ("%%j") do >>"%Aus%" echo %%a
Grüße
bastla

[Edit] Suchbegriff "Aktenzeichen:" ergänzt [/Edit]
Bitte warten ..
Mitglied: 78632
28.05.2009 um 16:51 Uhr
fragnurmal:
Warum in Zeile 5 nicht nur del "%Aus%" > nul ?
Bitte warten ..
Mitglied: bastla
28.05.2009 um 16:57 Uhr
... weil's dann besser
del "%Aus%" 2>nul
heißen sollte - und dann ist die Ersparnis nicht ganz so groß ...

Natürlich hast Du Recht - ist halt vermutlich irgendwo im Hinterkopf eine Hemmschwelle (über die ich aber gelegentlich schon drübergekommen bin ), absichtlich einen Fehler zu verursachen (auch, wenn er einkalkuliert und "behandelt" ist).

Grüße
bastla
Bitte warten ..
Mitglied: 78632
28.05.2009 um 17:01 Uhr
Dann Ist's ja ok. Es hätte ja sein können, dass ich was nicht beachtet habe (außer 2>nul, da nehme ich es nicht so genau.)

Grüße
blablanick
.
Bitte warten ..
Mitglied: alfabravo
28.05.2009 um 18:57 Uhr
Vielen Dank, genau so hatte ich es mir vorgestellt. Funktioniert 1A.

Gruß, alfabravo
Bitte warten ..
Neuester Wissensbeitrag
Microsoft

Lizenzwiederverkauf und seine Tücken

(5)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

Ähnliche Inhalte
Heiß diskutierte Inhalte
Windows Netzwerk
Windows 10 RDP geht nicht (16)

Frage von Fiasko zum Thema Windows Netzwerk ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (13)

Frage von Motte990 zum Thema Microsoft Office ...