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

Per Batch, 1.Lösung, alle Zeilenumbrüche aus einer TXT-Datei entfernen oder alternativ geziehlte Textblöcke aus einer TXT-Datei in eine zweite kopieren

Frage Entwicklung Batch & Shell

Mitglied: willimoeglich

willimoeglich (Level 1) - Jetzt verbinden

22.01.2010, aktualisiert 17:30 Uhr, 7956 Aufrufe, 6 Kommentare

Hallo, habe schon viele tolle Anregungen in diesem Forum gefunden, und hoffe ein Batch-Spezi findet sich und kann mein Problem lösen.

Ausgangsproblem ist, aus einer Text-Datei definierte Abschnitte in separate Text-Dateien zu kopieren. Die Ausgangsdatei hat folgendes Aussehen:

\\Berlin\Hauptstr8\Hotel_zum_Löwen
Hans.Meier keine Telefon
Werner.Meier kein Telefon
\\Berlin\Bahnhofstr11\Hotel An der Bahn
Ute.Wagner handy
\\Bonn\Uferstr888\Hotel zum Sonderzeichen$
Bernd.Richter isdn-telefon

In einer Steuerdatei habe ich alle Hotelnamen, welche per FOR-schleife ausgelesen werden. Für die jeweiligen Anschriften sollen nun in separaten TXT-Dateien, die Bewohnernamen
mit den Telefonangaben aus der Ausgangsdatei kopiert werden.
Mein erster Gedanke war, das mit FINDSTR und RegEx suche zu machen, aber das geht leider nur Zeilenweise und dazu müsste die ganze Ausgangsdatei in einer Zeile vorliegen.
Denn die \\ und der Hotelname sind immer vorhanden. Zwischen zwei mal vorkommenden \\ als zeilenanfang, hätte ich den Block den ich dann noch von den unwichtigen
Inhalten, wie Ort\Straße und Hotelname befreien könnte.
Falls es die Lösung vereinfacht, so kann ich auch vor jeder Anschriftenzeile eine Leerzeile einfügen.

Also erste Frage, wie bekomme ich alle Zeilenumbrüche aus der Ausgangsdatei haraus?

Wenn jemand eine andere Lösung, zum gezielten rauskopieren der Namenszeilen hat währe das auch nicht schlecht und als Alternative willkommen.

In den Zieldateien sollte dann folgendes stehen:
1.Datei soll heißen: Hotel_zum_Löwen.txt und beinhalten:
Hans.Meier keine Telefon
Werner.Meier kein Telefon
2.Datei soll heißen: Hotel an der Bahn.txt und beinhalten:
Ute.Wagner handy

usw.
Mitglied: LotPings
22.01.2010 um 18:39 Uhr
Hallo Willi,

deine Aufgabenstellung ist zwar nicht ganz eindeutig aber versuch es mal hiermit:

01.
@Echo off&Setlocal 
02.
set Ausgangsdatei=.\Hotels.txt 
03.
if defined Hotel set "Hotel=" 
04.
For /f "delims=" %%A in (%Ausgangsdatei%) do Call :check "%%~A" 
05.
Pause 
06.
Goto :eof 
07.
:Check 
08.
Set Line=%~1 
09.
if "%Line:~0,2%" EQU "\\" set "Hotel=%Line:~2%"&goto :NewHotel 
10.
if defined Hotel Echo/%~11>>"%Hotel%.txt" 
11.
goto :Eof 
12.
:NewHotel 
13.
If "%Hotel%" NEQ "%Hotel:*\=%" Set "Hotel=%Hotel:*\=%"&Goto :NewHotel 
14.
Echo Neues Hotel=%Hotel% 
15.
:: hier noch mögliche Sonderzeichen aus Dateinamen entfernen/maskieren 
16.
:: z.Bsp. Doppelpunkt gegen Unterstrich 
17.
Set "Hotel=%Hotel::=_%" 
18.
Goto :eof
Nur Teilweise getestet.

Gruß
LotPings
Bitte warten ..
Mitglied: willimoeglich
23.01.2010 um 11:38 Uhr
Hallo LotPings,
zunächst vielen Dank, für die schnelle Antwort/Lösung, sieht erst mal vielversprechend aus, muss nun sehen ob es sich an meine Situation anpassen lässt.
Hatte übersehen, dass nicht alle Hotelnamen mit dem String "Hotel" beginnen. Hotels beginnen schließlich nicht alle mit "Hotel...". Aber das macht nichts.
Falls ich es nicht hinkriege melde ich mich noch mal. Trotzdem ist die Lösung sehr elegant, wie ich finde. Die Befehlserweiterung und If define war mir nicht eingefallen.
Ich berichte dann später wie das Ergebnis aussieht.
Gruß Willi
Bitte warten ..
Mitglied: LotPings
23.01.2010 um 14:36 Uhr
Hallo Willi,
der String "Hotel" wird auch gar nicht gesucht.
Bei Zeilen welche mit "\\" beginnen wird der Abschnitt hinter dem letzten "\"Als Hotelname verwendet und in der Variablen "Hotel" gespeichert und solange als Dateiname verwendet bis er durch einen neuen Inhalt ersetzt wird.

Gruß
LotPings
Bitte warten ..
Mitglied: TsukiSan
23.01.2010 um 15:34 Uhr
also ganz eindeutig ist mir deine Frage nicht aber, wenn wir mal gaaanz langsam herangehen moechtest
du deine Ausgangsdatei "splitten". Weil Zeilenumbrueche sind ehr "vbCrLf".
Aber das alles in VBS zum Beispiel!
Also, wenn du nur "unterteilen" moechtest, dann google mal nach der SPLIT-Funktion in VBS oder so.
Ich meine, dass dich das ehr deinem Ziel naeher bringt.
Beispiel ind VBS fuer SPLIT and JOIN
01.
Dim b() 
02.
Dim Delim 
03.
 
04.
T = "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z" 
05.
WScript.Echo "OriginalText: " & T 
06.
 
07.
Delim = "," 'ganzen String nach Kommas durchsuchen und bei jedem Komma splitten 
08.
a = Split(T, Delim) 
09.
 
10.
ReDim b(UBound(a))    'Alle "Einzelstücke" in ein Array (ohne Kommas!) einlesen  
11.
For i = 0 To UBound(a)  
12.
    b(i) = a(i)         
13.
Next 
14.
 
15.
Delim = "." 'Punkt zwischen die einzelnen Arrays einfügen und Ausgabe in GROSSBUCHSTABEN 
16.
    c = UCase(Join(b, Delim)) 
17.
WScript.Echo "Mit Punkt und gross: " & c 
18.
 
19.
Delim = ";" 'Semikolon zwischen die einzelnen Arrays einfügen und Ausgabe in kleinbuchstaben 
20.
    c = LCase(Join(b, Delim)) 
21.
Wscript.Echo "Mit Semikolon und klein: " & c 
22.
 
23.
msgbox ""
Gruss
Tsuki
Bitte warten ..
Mitglied: willimoeglich
23.01.2010 um 18:13 Uhr
Hallo LotPings,
ja, die Antwort war etwas voreilig von mir. Habe nur ganz flüchtig drüber gesehen, sollte man ebend nicht machen.

Funktioniert übrigens prima, habe das ganze als CALL in mein vorbereitendes Script eingebaut. Brauchte bloß noch in Zeile 10 die "11" zur "1" machen
(war wohl ein Tipfehler) und schon war alles perfekt.
Ich habe es nun doch NICHT in eine For-schleife gepackt, sondern lösche die nicht benötigten "Hotel"-Dateien am ende einfach.
Also noch mal vielen Dank !

gruß Willi
Bitte warten ..
Mitglied: willimoeglich
23.01.2010 um 18:17 Uhr
Hallo Tsuki,
vielen dank für die Antwort, die Lösung ist auch nicht schlecht, nur lag mein Schwerpunkt darauf das ganze mit den Batch-Bordmittel zu lösen und nicht mit VBS.

Und das hat LotPings bestens umgesetzt.

Trotzdem vielen Dank !!!
Schon toll so ein Erfahrungsaustausch, mit soviel hilfbereiten Programmierern.

Gruß Willi
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Zeilenumbruch-Zeilen-Vorschub entfernen? (Batch)
gelöst Frage von clragonBatch & Shell9 Kommentare

Hallo Leute, Ich bin's wieder, mit einem verzwickten Problem. Und ich hab folgendes Problem Ich habe eine riesige Logfile ...

Batch & Shell
Zeilenumbrüche in mehreren Dateien eines Ordners entfernen
gelöst Frage von TranministratorBatch & Shell2 Kommentare

Hallo liebe Admins, habe folgenden Code welcher ganz gut funktioniert und alle Zeilenumbrüche EINER bestimmten Datei entfernt. Jetzt ist ...

Batch & Shell
Kopieren von Dateien aus .txt Liste
Frage von mippselBatch & Shell2 Kommentare

Hallo zusammen, ich habe folgendes Problem: Von den über 2000 pdf/docx Dateien würde ich mir gerne gewisse Dateien in ...

Microsoft Office
Word: Zeilenumbruch bei Textmarke entfernen
Frage von BadgerMicrosoft Office

Hallo, folgende Ausgangslage: In einem Word Dokument sind Textmarken von verschiedenen Excel-Zeilen vorhanden: Das Problem ist, dass automatisch immer ...

Neue Wissensbeiträge
Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 6 StundenInternet3 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registierunf von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Verschlüsselung & Zertifikate

19 Jahre alter Angriff auf TLS funktioniert immer noch

Information von BassFishFox vor 13 StundenVerschlüsselung & Zertifikate1 Kommentar

Interessant zu lesen. Der Bleichenbacher-Angriff gilt unter Kryptographen als Klassiker, trotzdem funktioniert er oft noch. Wie wir herausgefunden haben, ...

Windows 10

Windows 10 Fall Creators Update - Neue Funktion Hyper-V Standardswitch kann ggf. Fehler bei Proxy Configs verursachen

Erfahrungsbericht von rzlbrnft vor 1 TagWindows 103 Kommentare

Hallo Kollegen, Da wir die Gefahr lieben, haben wir bei einigen Usern nun mittlerweile das Creators Update drauf. Einige ...

Sicherheit

TLS-Zertifikat und privater Schlüssel von Microsofts Dynamics 365 geleakt

Information von Penny.Cilin vor 1 TagSicherheit

Microsoft hat versehentlich das TLS-Zertifikat inklusive dem privaten Schlüssel seiner Business-Anwendung Dynamics 365 geleakt. TLS-Zertifikat und privater Schlüssel von ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

LAN, WAN, Wireless
Von rj11 auf rj45
Frage von jensgebkenLAN, WAN, Wireless17 Kommentare

Hallo Gemeinschaft, könnt ihr mir vielleicht bei der anfertigung eines Kabels helfen - habe ein rj 11 stecker und ...

Netzwerkmanagement
NAS über zwei weitere Ethernet Anschlüsse verbinden
gelöst Frage von Sibelius001Netzwerkmanagement16 Kommentare

Sorry - ich bin hier wahrscheinlich als kompetter IT Trottel unterwegs. Aber eventuell kann mir jemand ganz einfach helfen: ...

LAN, WAN, Wireless
Häufig Probleme beim Anmelden in WLAN
Frage von mabue88LAN, WAN, Wireless15 Kommentare

Hallo zusammen, in einem Netzwerk gibt es relativ häufig (1-2 mal pro Woche) Probleme mit der WLAN-Verbindung. Zunächst mal ...