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

Mit Batch Datei auslesen, bestimmte Zeilen sowie Wörter löschen und in Datei sichern

Mitglied: DizzoR

DizzoR (Level 1) - Jetzt verbinden

04.04.2008, aktualisiert 12.04.2008, 18978 Aufrufe, 6 Kommentare

Hallo Community,
ich habe versucht, mein Problem durch Google, DOS-Bücher und andere Möglichkeiten selbst zu lösen, aber ich scheitere trotzdem. Ich glaube, mein Anliegen ist etwas größer, was der Grund sein könnte, dass ich das Script nicht hinbekomme. Ich habe vom Kumpel eine Textdatei bekommen.
In ihr befinden sich verschiedene Nummern, hinter denen sich, durch einen Doppelpunkt getrennt, eine zweite Nummer befindet (quasi ZAHL:ZAHL), und Sätze, die durch "-" abgetrennt sind. Sie sind alle untereinander geschrieben und fortlaufend. Als Bespiel:

..
ZAHL:ZAHL
ZAHL:ZAHL
-
Satz
-
ZAHL:ZAHL
ZAHL:ZAHL
..

Die Batchdatei soll nun folgendes machen:

1. Die Textdatei einlesen
2. Die Zeilen löschen, die mit "-", "S" und "C" beginnen, sodass nur noch die Zahlen mit den Nummern übrig sind und sonst alles gelöscht ist
3. Die Nummern in eine neue Textdatei schreiben
4. Die Zahl hinter dem Doppelpunkt löschen, sodass nur noch die Zahl vor dem Doppelpunkt in der Textdatei steht. Hierbei soll die Batch die gleichen Zahlen, die hinter dem Doppelpunkt stehen in eigene Textdatei schreiben. Beispeil:

ZAHL:1 -> in 1.txt
ZAHL:2 -> in 2.txt

Das war's. Hoffentlich habt ihr ungefähr verstanden, was ich meine. Und das hätte ich wahrscheinlich nie alleine geschafft. Daher freue ich mich, wenn ihr mir hier helfen könntet!

MfG DizzoR
Mitglied: bastla
04.04.2008 um 19:20 Uhr
Hallo DizzoR und willkommen im Forum!

Ob ich Dich richtig verstanden habe, wird sich zeigen, wenn Du folgendes direkt an der Kommandozeile eingibst:
01.
for /f "delims=:" %i in ('findstr /b /i /v "\- S C" "D:\Deine Textdatei.txt"') do echo %i>>"%j.txt"
Bitte beachten: Die neuen Textdateien werden im aktuellen Ordner erstellt (bzw ergänzt, falls sie bereits vorhanden sein sollten). Um sie in einen anderen Ordner zu schreiben, einfach dem "%j.txt" einen Pfad voranstellen, also etwa "D:\Anderer Ordner\%j.txt".

Grüße
bastla

[Edit] Nur als Ergänzung: In einem Batch müsstest Du jeweils die Prozentzeichen verdoppeln und daher %%i bzw %%j schreiben. [/Edit]
Bitte warten ..
Mitglied: DizzoR
04.04.2008 um 20:52 Uhr
Es hat super funktioniert, danke!
Mir ist eben nochmal eine Sache eingefallen, die Batch auch schnell automatisch machen sollte, und da du das sogut kannst, wäre es toll, wenn du mir auch schnell bei dem Script behilflich sein könntest. Was ich vorhabe, ist auch ganz einfach.

Ich habe in einer Textdatei mehrere Wörter nebeneinander, und die Batch soll mir alles löschen hinter dem ersten Wort bzw. nur das erste Wort wieder in eine neue Textdatei schreiben.

Wäre super, wenn du mir hier auch behilflich sein könntest!

MfG DizzoR
Bitte warten ..
Mitglied: bastla
04.04.2008 um 21:10 Uhr
Hallo DizzoR!

Freut mich, wenn's geklappt hat.
Eigentlich solltest Du für ein neues Thema auch einen neuen Thread eröfnnen, aber da ich nun schon mal dabei bin ...

Versuch es so:
01.
for /f "tokens=1,2 delims=: " %i in ('findstr /n ^^^^ "D:\Deine andere Textdatei.txt"') do @echo\%j>>"D:\Deine neue Textdatei.txt"
Auch diese Zeile kannst Du direkt eingeben oder (mit %%i und %%j) als Batch verwenden.

Grüße
bastla
Bitte warten ..
Mitglied: DizzoR
05.04.2008 um 12:09 Uhr
Danke bastler für die Arbeit, nur habe ich nicht drangedacht, dass Sonderzeichen im Wort es quasi unterteilen. Also, es sind Serverlogs in derTextdatei, und die haben das Schema XXX/XXX/XXX und so weiter.
Also wollte ich das jetzt anders machen: Die Batch soll in jeder Zeile nach "index.php" suchen und alles dahinter löschen. So ist's besser Ich glaube, das ist auch machbar oder?

Danke im Vorraus für die Arbeit! Mfg DizzoR
Bitte warten ..
Mitglied: bastla
05.04.2008 um 16:33 Uhr
Hallo DizzoR!

Für diesen Zweck eignet sich VBScript besser - zB:
01.
'TrimLog.vbs 
02.
Const Crit = "index.php" 
03.
Const Bak = ".bak" 
04.
 
05.
CritLen = Len(Crit) - 1 
06.
Set fso = CreateObject("Scripting.FileSystemObject") 
07.
 
08.
If WScript.Arguments.Count < 1 Then 
09.
	WScript.Echo "Keine Logedatei angegeben!" 
10.
	WScript.Quit 1 
11.
End If 
12.
 
13.
LogFile = WScript.Arguments(0) 
14.
If Not fso.FileExists(LogFile) Then 
15.
	WScript.Echo "Angegebene Logdatei " & LogFile & " nicht gefunden!" 
16.
	WScript.Quit 2 
17.
End If 
18.
 
19.
LogBak = LogFile & Bak 
20.
If fso.FileExists(LogBak) Then fso.DeleteFile LogBak 
21.
fso.MoveFile LogFile, LogBak 
22.
 
23.
Set FileIn = fso.OpenTextFile(LogBak, 1) 
24.
Set FileOut = fso.OpenTextFile(LogFile, 2, True) 
25.
 
26.
Do Until FileIn.AtEndOfStream 
27.
	LineIn = FileIn.ReadLine 
28.
	CritPos = InStr(1, LineIn, Crit, vbTextCompare) 
29.
	 
30.
	If CritPos Then 
31.
		LineOut = Left(LineIn, CritPos + CritLen) 
32.
	Else 
33.
		LineOut = LineIn 
34.
	End If 
35.
 
36.
	FileOut.WriteLine LineOut 
37.
Loop 
38.
 
39.
FileOut.Close 
40.
FileIn.Close 
41.
 
42.
WScript.Echo "Done."
Verwendung: Entweder das Log-File per Drag & Drop auf die Scriptdatei oder per Kommandozeilenaufruf übergeben - falls zB das Script als "C:\Scripts\TrimLog.vbs" gespeichert ist:
01.
cscript //nologo "C:\Scripts\TrimLog.vbs" "D:\Log.txt"
In beiden Fällen wird die Originaldatei mit der zusätzlichen Extension ".bak" im selben Ordner abgelegt.

Grüße
bastla
Bitte warten ..
Mitglied: DizzoR
12.04.2008 um 13:37 Uhr
@bastla:

sry, dass ich erst so spät zurück schreibe. Hatte die Woche viel um die Ohren. Also jedenfalls danke für das Script, aber so richtig gegeht hat es nicht. Ich bekam einen Fehler, als ich das Script ausführen wollte, weil WHS ausgeschaltet war. Und als ich es über die Registry einschaltete, hatte ich wieder einen Fehler. Naja, passt schon. Ist jetzt nicht soo wichtig; das erste Script hatte mehr Priorität

Daher danke für die Hilfe,

MfG DizzoR
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Bestimmte Zeile einer Textdatei mit Batch auslesen

gelöst Frage von PinkFLuffyUnicornBatch & Shell2 Kommentare

Hi, ich habe ein kleines Batch Script, welches mir den Status der Firewall ausgeben soll(ob an oder aus) der ...

Batch & Shell

Bestimmte CMD Zeile aus Batch auslesen

gelöst Frage von BatchAnfaenger91Batch & Shell5 Kommentare

Hallo ihr Lieben, habe seit dem neusten Batch Sprache kennengelernt und bin dabei ein Batch Skript zu schreiben ich ...

Batch & Shell

Bestimmte Zeilen mit einem Batch-Script löschen

gelöst Frage von Dnis822Batch & Shell1 Kommentar

Hallo zusammen, ich stehe vor folgendem Problem: ich möchte bestimmte Zeilen in einer Datei löschen. Folgendes habe ich bereits ...

Batch & Shell

Bestimmte Zeilen in einer Batch Datei löschen und die Datei neu speichern

Frage von nowyouseeme93Batch & Shell1 Kommentar

Share I$ H$ C$ F:\Benutzerservice\meineDaten G$ D$ F$ bilder H:\MeineDaten\Geheim Reports NetUser Telefonbuch F:\Intranet\Anwendungen\Nummern\Privat mitarbeiter mitteilungen Presse SocialMedia So ...

Neue Wissensbeiträge
Microsoft

Neuigkeiten zu Server und Office 365 was läuft mit was und was nicht

Tipp von AlFalcone vor 1 StundeMicrosoft

Server Betriebssysteme auf dem die verschiedenen Offices nicht supported sind: • Office 365 ist und wird nicht supported auf Windows ...

Speicherkarten

Neuer Speicherkartentyp - zunächst nur für einzelne Huawei-Smartphones

Tipp von VGem-e vor 2 StundenSpeicherkarten

Servus, als ob das "Chaos" i.S. Speicherkarten noch nicht groß genug wäre?! Evtl. kommt dieser neue Kartentyp bald auch ...

Sicherheit

Diverse D-Link-Router durch drei Schwachstellen kompromittierbar

Information von kgborn vor 4 StundenSicherheit

Hat jemand D-Link-Router in Verwendung? Einige Modelle sind sicherheitstechnisch offen wie ein Scheunentor. Äußerst unschöne Sache, aber nichts neues ...

Hardware

100.000 Mikrotik-Router ungefragt von Hacker abgesichert

Information von 7Gizmo7 vor 18 StundenHardware1 Kommentar

Hallo zusammen, da hier ja öfters mal von Mikrotik gesprochen wird. Trotz Updates klafft eine Sicherheitslücke in Hundertausenden Mikrotik-Routern. ...

Heiß diskutierte Inhalte
Windows 10
Sysprep Fehler im Log kann nicht starten
Frage von grillinator95Windows 1022 Kommentare

Hallo, kann leider SYSPREP nicht mehr starten, Win10 64bit. Logfile sagt folgendes: 2018-10-17 13:44:56, Info SYSPRP 2018-10-17 13:44:56, Info ...

Internet
Ist diese URL denkbar (Syntax)?
gelöst Frage von departure69Internet17 Kommentare

Hallo. Der Sohn eines Arbeitskollegen hat im Gymnasium EDV-Unterricht. Leider hat er in der letzten Klassenarbeit einen Fünfer geschrieben. ...

Debian
Linux debian 9 Installation
Frage von Green14Debian16 Kommentare

Hallo zusammen, ich habe mich ein wenig mit Debian auseinandergesetzt und möchte mir eine Standard-Installation als Grundlage für andere ...

Outlook & Mail
Outlook schiebt Mails aus Posteingang sofort in den Papierkorb
Frage von hermesOutlook & Mail13 Kommentare

Hallo Outlook Fachleute, wir haben hier das Problem, dass Outlook 2010 alle ankommenden Mails seit zwei Tagen einfach in ...