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

Per Batch in Dateizeilen nach Strings alles löschen

Frage Entwicklung Batch & Shell

Mitglied: Alme123

Alme123 (Level 1) - Jetzt verbinden

23.05.2013 um 19:35 Uhr, 2713 Aufrufe, 15 Kommentare

Hallo zusammen,

ich habe folgendes Problem:

ich habe eine sehr lange TextDatei (ca. 1300 Zeilen) in der folgendes steht (sehr kleiner Ausschnitt):

01.
language.name=Deutsch 
02.
language.region=Deutschland 
03.
language.code=de_DE 
04.
 
05.
gui.done=Fertig 
06.
gui.cancel=Abbrechen 
07.
gui.back=Back 
08.
gui.toMenu=Zurück zum Hauptmenü 
09.
gui.up=Hoch 
10.
gui.down=Runter 
11.
gui.yes=Ja 
12.
gui.no=Nein
Ein Batch (oder Vbscript) soll in allen Zeilen die "=" enthalten alles nach dem Gleichzeichen entfernen.

So sollte es danach aussehen:

01.
language.name= 
02.
language.region= 
03.
language.code= 
04.
 
05.
gui.done= 
06.
gui.cancel= 
07.
gui.back= 
08.
gui.toMenu= 
09.
gui.up= 
10.
gui.down= 
11.
gui.yes= 
12.
gui.no=

Vielen Dank im Vorraus,

Alme123
Mitglied: Endoro
23.05.2013, aktualisiert um 19:54 Uhr
Hallo Alme123,

wenn das nur ein kleiner Ausschnitt ist, was steht im restlichen Text: sind die Zeichenketten vor dem = unique? Gibts noch wo anders equal signs?

Gruss!
Bitte warten ..
Mitglied: Alme123
23.05.2013 um 19:58 Uhr
@Endoro

ja alle Zeichen vor dem = sind "normale" Textzeichen (also UTF-8 ohne BOM).
Nach dem = gibt es Sonderzeichen, vorher nicht.

Alme123
Bitte warten ..
Mitglied: rubberman
23.05.2013, aktualisiert um 20:35 Uhr
Hallo Alme123,

könnte so funktionieren:
01.
@echo off &setlocal 
02.
set "txtfile=test.txt" 
03.
set "newfile=neu.txt" 
04.
 
05.
setlocal EnableDelayedExpansion 
06.
<"!txtfile!" >"!newfile!" ( 
07.
  for /f %%i in ('type "!txtfile!"^|find /c /v ""') do for /l %%j in (1 1 %%i) do ( 
08.
    set "ln=" &set /p "ln=" 
09.
    if defined ln ( 
10.
      for /f "delims==" %%k in ("!ln!") do echo %%k= 
11.
    ) else ( 
12.
      echo( 
13.
14.
15.
)
Grüße
rubberman
Bitte warten ..
Mitglied: Endoro
23.05.2013, aktualisiert um 23:20 Uhr
Ich hab es mal mit sed gebaut. Es wird eine Sicherheitskopie .bak angelegt:

01.
@echo off&setlocal 
02.
sed  -i.bak "s/=.*/=/" file.txt
Gruss!

PS: @rubberman: ich weiss ja nicht, ob @Alme123 Sonderzeichen im Text hat. Aber nachdem dein Code drübergelaufen ist, könnten es einige weniger sein
Bitte warten ..
Mitglied: rubberman
23.05.2013 um 22:06 Uhr
Hallo Endoro,

Sonderzeichen würde ich nicht unbedingt vor dem = erwarten. Falls doch, findet sich auch dafür eine Lösung

Grüße
rubberman
Bitte warten ..
Mitglied: bastla
23.05.2013 um 22:33 Uhr
... und wenn's ein VBScript ist :
01.
Ein = "D:\test.txt" 
02.
Aus = "D:\neu.txt" 
03.
Delim = "=" 
04.
 
05.
Set fso = CreateObject("Scripting.FileSystemObject") 
06.
T = Split(fso.OpenTextFile(Ein).ReadAll, vbNewLine) 
07.
 
08.
For Each Z In T 
09.
    If InStr(Z, Delim) > 0 Then 
10.
        N = N & vbNewline & Split(Z, Delim)(0) & Delim 
11.
    Else 
12.
        N = N & vbNewline & Z 
13.
    End If 
14.
Next 
15.
 
16.
fso.CreateTextFile(Aus).Write Mid(N, 3)
Grüße
bastla
Bitte warten ..
Mitglied: Alme123
24.05.2013, aktualisiert um 05:21 Uhr
@rubberman , @bastla und @Endoro

leider macht mir @rubberman 's Script mir die Datei kaputt (entfernt einfach Satzteile mit . vor dem =)
@bastla 's Script fängt nur die ersten Zeilen an und meint Feierabend zu haben.

@Endoro
sed möchte einfach nicht funktionieren, ich habe Windows 7 64 Bit.

Alme123
Bitte warten ..
Mitglied: bastla
24.05.2013, aktualisiert um 09:09 Uhr
Hallo Alme123!
... fängt nur die ersten Zeilen an und meint Feierabend zu haben.
Du hast ja auch nur die ersten Zeilen gepostet ...

Was passiert denn genau, bis zu welcher Zeile (mit welcher Besonderheit) wird verarbeitet?

[Edit] Sollte Unicode ein Faktor sein, kannst Du es mit dieser Variante versuchen:
01.
Ein = "D:\test.txt" 
02.
Aus = "D:\neu.txt" 
03.
Delim = "=" 
04.
 
05.
Set fso = CreateObject("Scripting.FileSystemObject") 
06.
T = Split(fso.OpenTextFile(Ein, 1, 0, 1).ReadAll, vbNewLine) 
07.
 
08.
For Each Z In T 
09.
    If InStr(Z, Delim) > 0 Then 
10.
        N = N & vbNewline & Split(Z, Delim)(0) & Delim 
11.
    Else 
12.
        N = N & vbNewline & Z 
13.
    End If 
14.
Next 
15.
 
16.
fso.CreateTextFile(Aus, 2, 1, 1 ).Write Mid(N, 3)
[/Edit]

Grüße
bastla
Bitte warten ..
Mitglied: Endoro
24.05.2013, aktualisiert um 08:17 Uhr
Zitat von Alme123:
@Endoro
sed möchte einfach nicht funktionieren, ich habe Windows 7 64 Bit.

Hallo Alme123,

der Pfad zur sed.exe muss im Script oder dem %path% eingefügt werden.

Gruss!
Bitte warten ..
Mitglied: Alme123
24.05.2013 um 13:49 Uhr
@bastla

Fehler in deinem "Edit" Script: Zeile 6 Zeichen 1: Ungültiger Prozeduraufruf oder ungültiges Argument. Code: 800A0005

Die Datei sieht so aus: http://wormstates.pytalhost.com/de_DE.lang
Datei herunterladen und so bitte testen.


Alme123
Bitte warten ..
Mitglied: Friemler
24.05.2013, aktualisiert 25.05.2013
Hallo Alme123,

noch eine Powershell-Lösung gefällig?
01.
$inFile = "D:\test.txt" 
02.
$outFile = "D:\neu.txt" 
03.
 
04.
$regExp = new-object System.Text.RegularExpressions.Regex("(\S+=)(\S+)") 
05.
 
06.
if (test-path $outFile) 
07.
08.
  remove-item $outFile 
09.
10.
 
11.
foreach ($line in get-content $inFile -encoding UTF8) 
12.
13.
  $matches = $regExp.match($line) 
14.
  $newLine = "" 
15.
   
16.
  if ($matches.success) 
17.
18.
    $newLine = $matches.groups[1].captures[0].toString() 
19.
20.
 
21.
  out-file -inputObject $newLine -encoding UTF8 -append $outFile 
22.
}
Ergebnis ist eine UTF8-Datei mit BOM. Wenn in Zeile 21 UTF8 durch Default ersetzt wird, wird eine ANSI-Datei geschrieben.


[EDIT]
... und wenn eine UTF8-Datei ohne BOM ausgegeben werden soll:
01.
$inFile = "D:\test.txt" 
02.
$outFile = "D:\neu.txt" 
03.
 
04.
$crlf = [System.Environment]::NewLine 
05.
$newContent = "" 
06.
 
07.
foreach ($line in get-content $inFile -encoding UTF8) 
08.
09.
  if ($line.Contains("=")) 
10.
11.
    $newContent += $line.Split("=")[0] + "=" + $crlf 
12.
13.
  else 
14.
15.
    $newContent += $line + $crlf 
16.
17.
18.
 
19.
$encoding = new-object System.Text.UTF8Encoding($False) 
20.
[System.IO.File]::WriteAllText($outFile, $newContent, $encoding)
Diese Version arbeitet auch schneller, weil die Ausgabedatei in einem Stück geschrieben wird.
[/EDIT]


Gruß
Friemler
Bitte warten ..
Mitglied: Alme123
24.05.2013 um 14:40 Uhr
@Friemler

danke, dein Script funktioniert! (Mit der http://wormstates.pytalhost.com/de_DE.lang Datei)

Danke auch an @bastla und @rubberman ,

Friemler's Script funktionierte beim ersten mal perfekt (bei mir hat es erst so funktioniert: Powershell(.exe) öffnen und "Set-ExecutionPolicy RemoteSigned" eingeben)


Alme123

[Theard closed]
Bitte warten ..
Mitglied: Friemler
24.05.2013 um 14:47 Uhr
Hallo Alme123,

man kann das Script auch so aufrufen:
 powershell -nologo -executionpolicy remotesigned -file "Scriptpfad.ps1"
Dadurch wird die Ausführung von Powershell-Scripts nur temporär erlaubt.

Gruß
Friemler
Bitte warten ..
Mitglied: bastla
24.05.2013 um 16:32 Uhr
Hallo Alme123!

Wenn Du gleich den Link zu dieser Datei gepostet hättest, anstatt alle Beteiligten raten zu lassen, ob und welche Formatierung / Sonderzeichen zu berücksichtigen wären (mein Script ist daran gescheitert, dass keine "Windows"-Zeilenschaltungen mit CR + LF, sondern nur LF verwendet werden), wäre das Thema gestern schon durch gewesen ...

... nicht zuletzt mit dieser Script-Version:
01.
Ein = "D:\de_DE.lang" 
02.
Aus = "D:\neu.txt" 
03.
Delim = "=" 
04.
 
05.
Set fso = CreateObject("Scripting.FileSystemObject") 
06.
T = Split(fso.OpenTextFile(Ein).ReadAll, vbLf) 
07.
 
08.
For Each Z In T 
09.
    If InStr(Z, Delim) > 0 Then 
10.
        N = N & vbLf & Split(Z, Delim)(0) & Delim 
11.
    Else 
12.
        N = N & vbLf & Z 
13.
    End If 
14.
Next 
15.
 
16.
fso.CreateTextFile(Aus).Write Mid(N, 2)

Grüße
bastla
Bitte warten ..
Mitglied: Endoro
24.05.2013 um 17:01 Uhr
Hallo Alme123,

läuft mit sed auch prima in gefühlt 1/100 sec. durch

Gruss!
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batch: bestimmten string aus einer Zeile in txt löschen
Frage von Vit1985Batch & Shell4 Kommentare

Hallo, ich habe eine Textdatei und dort möchte ich einen bestimmten string löschen! Beispielzeile: Command: Hallo, wie Ich möchte ...

Batch & Shell
Teil eines Strings löschen
gelöst Frage von Dnis822Batch & Shell18 Kommentare

Hallo zusammen, ich komme gerade bei folgendem Punkt nicht weiter: Ich habe eine Datei die völlig unformatiert ist, das ...

Batch & Shell
Mit Batch nach einem String in allen bat Dateien auf C suchen und die gefundenen evtl. löschen
gelöst Frage von xxxxxxxBatch & Shell8 Kommentare

Hallo liebe Forummitglieder, Ich habe schon viele nützliche Beiträge bei Ihnen gefunden und bin daher sehr begeistert von Ihren ...

Batch & Shell
Powershell In Textdatei Nach bestimmter Zeichenfolgen in String suchen und diese Strings dann löschen
gelöst Frage von PinkFLuffyUnicornBatch & Shell5 Kommentare

Hi, ich habe folgendes Vorhaben: Ich muss die Logdateien von dem Minecraftserver eines Freundes Nach bestimmten Zeichenfolgen in den ...

Neue Wissensbeiträge
Sicherheit

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

Information von Penny.Cilin vor 1 StundeSicherheit

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

Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 23 StundenViren und Trojaner1 Kommentar

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 1 TagRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 4 TagenInternet19 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Brainstorming, einfachste Option 1 getrenntes LAN (mit WAN zugang)
Frage von 132954LAN, WAN, Wireless13 Kommentare

Hi, folgendes: Wir bekommen eine Glasfaser Leitung, Und das sollte Optional so aussehen: Ein Modem/Router für das WAN, ein ...

Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell12 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...

Netzwerkgrundlagen
Hi eine blöde frage. xD
Frage von 132954Netzwerkgrundlagen12 Kommentare

Also: Habe 2012 r2 essentials neuinstalliert, allerdings installiert diese version ja gleich diesen gangen AD kram mit, den hab ...

Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement12 Kommentare

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