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

Klammern und Inhalt der Klammern aus einem Text entfernen per Batch

Frage Entwicklung Batch & Shell

Mitglied: Thomas0204

Thomas0204 (Level 1) - Jetzt verbinden

22.10.2011 um 10:55 Uhr, 3957 Aufrufe, 3 Kommentare

Hey,
ich habe mal wieder ein Problem und zwar habe ich diesmal eine Text Datei wo die Klammern +Inahlt entfernt werden sollen.
Die Klammern bekommen ich entfern aber ich weiß nicht wie ich dazu noch den Inhalt entfernt bekomme.
Also die Texte Datei sieht ungefähr so aus:

Error (Fehlercode 5825) Probleme mit...
Fail [error 458d4] user...
Fail [error 458d4 drtd] user...

Nacher möchte ch alt nur noch so eine Textdatei haben:

Error Probleme mit...
Fail user...

Ich hoffe ihr könnt mir helfen
LG Thomas0204
Mitglied: Skyemugen
22.10.2011 um 11:49 Uhr
Aloha,

leider habe ich momentan nicht wirklich Zeit, daher nur ein halboptimaler Vorschlag von mir jetzt:
01.
for /f "usebackq tokens=1,2,* delims=()[]" %%s in ("E:\Skripte\datei.log") do >>"E:\Skripte\Ausgabe.txt" echo %%s%%u
in der Annahme, dass ()[] auch nur in den Fehlercodes vorkommen ...

halboptimal deshalb, weil du jetzt zwei Leerzeichen bekommst Error Probleme mit ...

... aber vielleicht schaffst du es ja, es selbst noch zum Optimalen hinzubauen (mit einem Unterprogramm)

greetz André
Bitte warten ..
Mitglied: Friemler
22.10.2011 um 11:54 Uhr
Hallo Thomas0204,

ich rate zu einem VBScript. Das Bearbeiten von Dateien mit beliebigem Inhalt gehört nicht zu den Stärken von Batchscript. Es gibt einige Zeichen, die den Batchinterpreter bei der Verarbeitung durcheinander bringen.

Teste mal das hier:
01.
'Ein- und Ausgabedatei hier eintragen 
02.
strInFile   = "Test.txt" 
03.
strOutFile  = "Test neu.txt" 
04.
 
05.
'Alle Arten von Klammern 
06.
arrBrackets = Array("()", "[]", "{}", "<>") 
07.
 
08.
 
09.
Const ForReading = 1 
10.
 
11.
'Das Klammer-Array tauglich machen 
12.
'als Suchmuster für Reguläre Ausdrücke. 
13.
'.* steht für alle Zeichen, die zwischen 
14.
'den Klammern stehen, die Klammern 
15.
'müssen mit \ escaped werden, da sie 
16.
'zur Syntax von Regulären Ausdrücken gehören. 
17.
' {0,1} bewirkt, dass zusätzlich zu der zu 
18.
'löschenden Klammer auch noch EIN 
19.
'nachfolgendes Leerzeichen gelöscht wird, 
20.
'wenn es denn vorhanden ist. 
21.
For I = 0 To UBound(arrBrackets) 
22.
  arrBrackets(I) = Replace(arrBrackets(I), "()", "\(.*\) {0,1}") 
23.
  arrBrackets(I) = Replace(arrBrackets(I), "[]", "\[.*\] {0,1}") 
24.
  arrBrackets(I) = Replace(arrBrackets(I), "{}", "\{.*\} {0,1}") 
25.
  arrBrackets(I) = Replace(arrBrackets(I), "<>", "<.*> {0,1}") 
26.
Next 
27.
 
28.
'Dateisystemobjekt erzeugen 
29.
Set objFSO = CreateObject("Scripting.FileSystemObject") 
30.
 
31.
'Eingabedatei öffnen, auslesen und wieder schließen 
32.
Set objInFile = objFSO.OpenTextFile(strInFile, ForReading, False) 
33.
strContent    = objInFile.ReadAll 
34.
objInFile.Close 
35.
 
36.
'Objekt für Reguläre Ausdrücke erzeugen und einstellen, 
37.
'dass alle Fundstellen berücksichtigt werden sollen 
38.
Set objRegExp    = New RegExp 
39.
objRegExp.Global = True 
40.
 
41.
'Alle Klammerarten suchen und ersetzen 
42.
For Each strBrackets In arrBrackets 
43.
  objRegExp.Pattern = strBrackets 
44.
  strContent = objRegExp.Replace(strContent, "") 
45.
Next 
46.
 
47.
'Ausgabedatei öffnen und 
48.
'den veränderten Dateiinhalt in neue Datei schreiben 
49.
'Ausgabedatei schließen 
50.
Set objOutFile = objFSO.CreateTextFile(strOutFile, True) 
51.
objOutFile.Write strContent 
52.
objOutFile.Close
Zeile 2 und 3 musst Du anpassen, den Code als VBS-Datei speichern und das Script dann folgendermaßen starten:
cscript /nologo "PfadUndNameDesScripts.vbs"
Gruß
Friemler
Bitte warten ..
Mitglied: Thomas0204
22.10.2011 um 12:17 Uhr
@Skyemugen
Deine lösung war völlig ausreichend Danke
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

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

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 ...