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

Mitglied: Alme123

Alme123 (Level 1) - Jetzt verbinden

23.05.2013 um 19:35 Uhr, 2720 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
Windows 10
Zero-Day-Lücke in Microsoft Edge
Information von kgborn vor 2 TagenWindows 10

In Microsofts Edge-Browser klafft wohl eine nicht geschlossene (0-Day) Sicherheitslücke im Just In Time Compiler (JIT Compiler) für Javascript. ...

Sicherheit
Microsoft und Skype: Sicherheit
Information von kgborn vor 2 TagenSicherheit

Die Tage gab es ja einige Berichte zur Sicherheit des Skype-Updaters. Der Updater von Skype läuft unter dem Konto ...

Datenschutz

Behörden ignorieren Sicherheitsbedenken gegenüber Windows 10

Information von Penny.Cilin vor 3 TagenDatenschutz8 Kommentare

Hallo, passend zum Thema Ablösung LIMUX in München ein interessanter Beitrag dazu: Behörden ignorieren Sicherheitsbedenken gegenüber Windows 10 Anscheinend ...

Sicherheit
Information Security Hub Munich airport
Information von brammer vor 3 TagenSicherheit

Hallo, Neues Center für Cyber Kriminalität am Münchener Flughafen brammer

Heiß diskutierte Inhalte
Windows 10
Windows 10 (1709) Tastur und Maus wieder einschalten?
Frage von LochkartenstanzerWindows 1016 Kommentare

Moin, Ich habe von einem Kunden einen Win10-Rechner bekommen, bei dem weder Tastatur noch Maus geht. Die Hardware funktioniert ...

Humor (lol)
Was könnte man mit einem Server machen? Idee gesucht
Frage von 2SeitenHumor (lol)12 Kommentare

Hey Zusammen Ich habe einen alten HP G2 Rackserver zu Hause rumliegen. 28GB Ram, 1xAMD Prozi mit etwa 2GHz. ...

Server-Hardware
Server für Exchange 2016, Kaufberatung
Frage von MazenauerServer-Hardware10 Kommentare

Guten Tag werte Gemeinde, Vorab: Ich dachte es gab mal einen separaten Bereich für solche Anfragen, habe ich leider ...

Firewall
RB2011 Firewall Rule eine bestimmte Mac oder IP Adresse nicht zu blockieren
Frage von lightmanFirewall10 Kommentare

Hallo liebes Forum mit ihren Spezialisten. Ich habe meine Firewall so konfiguriert das kein Endgerät ohne meine Speziellen Erlaubnis ...