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, 1208 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 ?
Mit freundlichen Grüßen
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.
Mit freundlichen Grüßen
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
Mit freundlichen Grüßen
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 !
Mit freundlichen Grüßen
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 ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

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

Frage von Manuel1234 zum Thema Batch & Shell ...

HTML
gelöst Mit HTML Datei eine Textdatei auslesen (7)

Frage von Maffi zum Thema HTML ...

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

Frage von lordzwieback zum Thema Google Android ...

Batch & Shell
Per Batch Textdatei Spaltenweise auslesen nochmal weil ich dumm bin (9)

Frage von PinkFLuffyUnicorn zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...