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

Zahlen aus Textdatei auslesen und exportieren

Frage Entwicklung Batch & Shell

Mitglied: infowars

infowars (Level 2) - Jetzt verbinden

27.11.2013, aktualisiert 18:05 Uhr, 1249 Aufrufe, 7 Kommentare

Moin,
ich möchte aus einer Textdatei Zahlen auslesen und diese in eine andere Datei exportieren.
Das Problem daran ist folgendes:
Die Zahlen der Textdatei liegen zum Teil so vor :

#Kommentar
die zahl 1.2
#Kommentar
die zahl 2.3.4
#Kommentar
die Zahl 3.4.5
#Kommentar
die Zahl 4.5
#Kommentar
usw.

und sollen dann in dieses Format gebracht werden, mit einer 1 und einem Leerzeichen, gefolgt von den Zahlen :

1 1.2.0.0 1.2.255.255
1 2.3.4.0 2.3.4.255
1 3.4.5.0 3.4.5.255
1 4.5.0.0 4.5.255.255

Das lässt sich doch bestimmt mit einer Batch oder so lösen.
Möglicherweise über einen Export in eine Tabelle ?
Leider bin ich kein Batch-Guru, kann mir einer auf die Sprünge helfen ?
MfG
Mitglied: bastla
27.11.2013, aktualisiert um 13:30 Uhr
Hallo infowars!

Auf die Schnelle (und relativ "dirty" ) etwa so:
01.
@echo off & setlocal 
02.
set "Quelle=D:\TextMitZahlen.txt" 
03.
set "Ziel=D:\NurZahlen.txt" 
04.
 
05.
del "%Ziel%" 2>nul 
06.
for /f "delims=" %%i in ('findstr /bv "#" "%Quelle%"') do call :ProcessLine "%%i" 
07.
goto :eof 
08.
 
09.
:ProcessLine 
10.
for %%a in (%~1) do set "Zahl=%%a" 
11.
for /f "tokens=1-3 delims=." %%a in ("%Zahl%") do ( 
12.
    if "%%c" neq "" ( 
13.
        >>"%Ziel%" echo 1 %%a.%%b.%%c.0.%%a.%%b.%%c.255 
14.
    ) else ( 
15.
        if "%%b" neq "" ( 
16.
            >>"%Ziel%" echo 1 %%a.%%b.0.0.%%a.%%b.255.255 
17.
        ) else ( 
18.
                >>"%Ziel%" echo 1 %%a.0.0.0.%%a.255.255.255 
19.
20.
21.
22.
goto :eof
Grüße
bastla
Bitte warten ..
Mitglied: Endoro
27.11.2013, aktualisiert um 13:45 Uhr
Hey, noch ne Lösung:
01.
@ECHO OFF &SETLOCAL 
02.
(for /f "eol=#delims=" %%a in (file) do ( 
03.
	set "line=%%a" 
04.
	SETLOCAL ENABLEDELAYEDEXPANSION 
05.
	set "line=!line:.=,!" 
06.
	for %%b in (!line!) do ( 
07.
		echo(%%b|findstr /br "[0-9][0-9]*" >nul&& ( 
08.
			set "part1=!part1!%%b." 
09.
			set /a cnt+=1 
10.
11.
12.
	set "part2=!part1!" 
13.
	for /l %%b in (!cnt!, 1, 3) do set "part1=!part1!0."&set "part2=!part2!255." 
14.
	echo(1 !part1:~0,-1! !part2:~0,-1! 
15.
	endlocal 
16.
))>file.new 
17.
type file.new 
18.
 
lg.
Bitte warten ..
Mitglied: infowars
27.11.2013 um 13:49 Uhr
Danke, ich werds heute abend gleich mal testen.
MfG
Bitte warten ..
Mitglied: infowars
27.11.2013, aktualisiert um 18:07 Uhr
@bastla
Bei deiner Batch werden die Zahlen nicht durch ein Leerzeichen getrennt, sondern durch einenPunkt, aber die Batch läuft durch wie sie soll:
Also von:
#Kommentar
1.2.3
zu
1 1.2.3.0.1.2.3.255

@Endoro
Super, läuft durch.

Nur habe ich bei beiden Varianten noch ein Leerzeichen hinter den formatierten Zahlen
Thx a lot
MfG
Bitte warten ..
Mitglied: bastla
27.11.2013 um 18:13 Uhr
Hallo infowars!
Bei deiner Batch werden die Zahlen nicht durch ein Leerzeichen getrennt, sondern durch einenPunkt
So sah doch auch Deine Vorgabe aus ...
Nur habe ich bei beiden Varianten noch ein Leerzeichen hinter den formatierten Zahlen
Schau mal, ob in den Zeile 13, 16 und 18 bei meinem Ansatz (dort kannst Du bei Bedarf auch die Punkte durch Leerzeichen ersetzen) bzw 14 bei Endoro dieses Leerzeichen am Ende zu finden ist.

Grüße
bastla
Bitte warten ..
Mitglied: infowars
27.11.2013 um 18:39 Uhr
Sorry, hab mich falsch ausgedrückt, ich meine es sieht so aus statt so:

1 1.2.0.0.1.2.255.255
1 1.2.0.0 1.2.255.255

Dass mit den Leerzeichen werde ich schon hinkriegen.
Passt alles, danke !
MfG
Bitte warten ..
Mitglied: bastla
27.11.2013 um 18:48 Uhr
Hallo infowars!

Und ich habe das Leerzeichen zwischendurch übersehen - auch sorry

Ersetze den Punkt nach der jeweils letzten 0 in den oben genannten Zeilen durch ein Leerzeichen.

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Batch: Textdatei Zeilenweise auslesen (2)

Frage von CreatorX zum Thema Batch & Shell ...

Batch & Shell
gelöst BATCH: Daten aus Textdatei auslesen und in neue Textdatei separieren (9)

Frage von Manuel1234 zum Thema Batch & Shell ...

Batch & Shell
gelöst Bestimmte Zeile einer Textdatei mit Batch auslesen (2)

Frage von PinkFLuffyUnicorn zum Thema Batch & Shell ...

Google Android
Textdatei auf SD Karte auslesen funktioniert nicht (Oneplus One) (4)

Frage von 115122 zum Thema Google Android ...

Neue Wissensbeiträge
Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Windows 10

Windows 10: Erste Anmeldung Animation deaktivieren

(3)

Anleitung von alemanne21 zum Thema Windows 10 ...

Exchange Server

Mittels Batch-Script Exchange-Logs sammeln und archivieren

Anleitung von beidermachtvongreyscull zum Thema Exchange Server ...

Heiß diskutierte Inhalte
Verschlüsselung & Zertifikate
SSL Zertifikat für HTTPS (26)

Frage von Hendrik2586 zum Thema Verschlüsselung & Zertifikate ...

Grafikkarten & Monitore
24" oder 27" mit Full HD oder doch mehr Auflösung? (20)

Frage von brutzler zum Thema Grafikkarten & Monitore ...

Netzwerke
Ip Adressenkonflikt bei Großfamilie (12)

Frage von gunter zum Thema Netzwerke ...