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, 4129 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 ..
Ähnliche Inhalte
Batch & Shell
gelöst Zeilenumbruch-Zeilen-Vorschub entfernen? (Batch) (9)

Frage von clragon zum Thema Batch & Shell ...

Batch & Shell
gelöst Einen Teil eines Textpfades aus einer TXT per Batch entfernen!? (3)

Frage von kampen zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows 10

Windows 8.x oder 10 Lizenz-Key aus dem ROM auslesen mit Linux

(6)

Tipp von Lochkartenstanzer zum Thema Windows 10 ...

Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(38)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Heiß diskutierte Inhalte
Windows 10
gelöst Windows 10 Home "Netzlaufwerk nicht bereit" (19)

Frage von Oggy01 zum Thema Windows 10 ...

Viren und Trojaner
Verschlüsselungstrojaner simulieren (18)

Frage von AlbertMinrich zum Thema Viren und Trojaner ...

LAN, WAN, Wireless
Cisco W-Lan Controller als Applicance oder Software (11)

Frage von Herbrich19 zum Thema LAN, WAN, Wireless ...

Exchange Server
Exchange Postfach leeren - nicht löschen (11)

Frage von AndreasOC zum Thema Exchange Server ...