Batch für alle Inhalte extrahieren zwischen Anführungszeichen aus einer Textdatei
Hallo,
möchte Inhalte zwischen Anführungszeichen aus einer Textdatei in eine andere Textdatei extrahieren. Komme leider nicht weiter.
Habe damit versucht:
for /f "usebackq tokens=1,2,* delims=" " " " %%s in ("N:\English\website.txt") do >>"N:\deutsch\website.txt" echo %%s%%u
Mein Ziel ist es die Inhalte zu extrahieren > In deutsch übersetzen und danach an der selben Stelle zwischen Anführungszeichen wieder einsetzen.
Brauche dafür zwei Batches.
Die Textdatei sieht so aus:
'player_play' => "Play",
'player_pause' => "Pause",
'player_prev' => "Previous",
'player_next' => "Next",
'player_mute' => "Mute",
'player_unmute' => "Unmute",
'player_settings' => "Settings",
'player_fullscreen' => "Enable full screen mode",
'player_efullscreen' => "Disable full screen mode",
'player_speed' => "Speed",
'player_normal' => "Normal",
'player_quality' => "Quality",
'player_pip' => "PiP mode",
möchte Inhalte zwischen Anführungszeichen aus einer Textdatei in eine andere Textdatei extrahieren. Komme leider nicht weiter.
Habe damit versucht:
for /f "usebackq tokens=1,2,* delims=" " " " %%s in ("N:\English\website.txt") do >>"N:\deutsch\website.txt" echo %%s%%u
Mein Ziel ist es die Inhalte zu extrahieren > In deutsch übersetzen und danach an der selben Stelle zwischen Anführungszeichen wieder einsetzen.
Brauche dafür zwei Batches.
Die Textdatei sieht so aus:
'player_play' => "Play",
'player_pause' => "Pause",
'player_prev' => "Previous",
'player_next' => "Next",
'player_mute' => "Mute",
'player_unmute' => "Unmute",
'player_settings' => "Settings",
'player_fullscreen' => "Enable full screen mode",
'player_efullscreen' => "Disable full screen mode",
'player_speed' => "Speed",
'player_normal' => "Normal",
'player_quality' => "Quality",
'player_pip' => "PiP mode",
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 593322
Url: https://administrator.de/forum/batch-fuer-alle-inhalte-extrahieren-zwischen-anfuehrungszeichen-aus-einer-textdatei-593322.html
Ausgedruckt am: 18.05.2025 um 12:05 Uhr
14 Kommentare
Neuester Kommentar

möchte Inhalte zwischen Anführungszeichen aus einer Textdatei in eine andere Textdatei extrahieren
Vor@echo off
>"N:\deutsch\website.txt" (for /f usebackq^ tokens^=1^,3^ delims^=^"^' %%a in ("N:\English\website.txt") do echo.%%a;%%b)
zurück
@echo off
>"N:\whatever.txt" (for /f "usebackq tokens=1,2 delims=;" %%a in ("N:\deutsch\website.txt") do echo '%%a' =^> "%%b",)

Das ist alles für Batch-Files gedacht nicht fürs Ausprobieren auf der Konsole, für die Konsole müssen es einfach Prozentzeichen sein ... Funktioniert hier im Test einwandfrei!

Zitat von @codeless:
Danke hat erstmal funktioniert. Brauche aber nur die rechts stehehne Inhalte:
"Play",
"Pause",
"Previous",
"Next",
etc.
Bekomme das aber jetzt jetzt so:
player_play;Play
player_pause;Pause
player_prev;Previous
player_next;Next
player_mute;Mute
Die Apostroph Inhalte sollten unberührt bleiben.
Die Ausgabe hatte ich so gestaltet, dass du es damit auch hinterher mit dem zweiten Teil von oben wieder zurückschreiben kannst und du eine Zuordnung hast Danke hat erstmal funktioniert. Brauche aber nur die rechts stehehne Inhalte:
"Play",
"Pause",
"Previous",
"Next",
etc.
Bekomme das aber jetzt jetzt so:
player_play;Play
player_pause;Pause
player_prev;Previous
player_next;Next
player_mute;Mute
Die Apostroph Inhalte sollten unberührt bleiben.
Kannst du aber beliebig anpassen, einfach hinten das
...............do echo.%%a;%%b)
...............do echo.%%b)
Die führenden Punkte natürlich nicht reinschreiben, versteht sich von selbst, hätte man eigentlich mit etwas Hirn einschalten auch selbst anpassen können ...

Zitat von @codeless:
Bekomme die Ubersetzten Inhalte nicht mehr auf die Richtige Position. Bei dem 2 Script bekomme ich mit dem Code nicht angepasst.
Abspielen
Pause
Weiter
Zurück
Etc
Weil du dafür die Version mitBekomme die Ubersetzten Inhalte nicht mehr auf die Richtige Position. Bei dem 2 Script bekomme ich mit dem Code nicht angepasst.
Abspielen
Pause
Weiter
Zurück
Etc
............ do echo.%%a;%%b)
Bitte vorher einmal durchlesen und erst dann schreiben...
https://www.tutorialspoint.com/batch_script/index.htm
I'm out.

Zitat von @codeless:
Das ist mir klar das ich dafür die Version nutzen soll. Aber ich muss das ja so hinbekommen wegen der Übersetzung. Ist es überhaupt möglich?
Geht doch Das ist mir klar das ich dafür die Version nutzen soll. Aber ich muss das ja so hinbekommen wegen der Übersetzung. Ist es überhaupt möglich?
Kannst auch die Powershell nehmen, hier als Beispiel die Übersetzungen in einer Hashtable im Skript (kann man natürlich auch aus einer Datei importieren ...)
$file = 'D:\daten.txt'
$text = gc $file -raw
$translation = @{
'player_pause' = 'Pause'
'player_play' = 'Abspielen'
'player_prev' = 'Letzter'
}
$translation.GetEnumerator() | %{
$text = $text -replace "(?<='$([regex]::Escape($_.Key))' => `")[^`"]*",$_.Value
}
$text | sc $file

Doch.
Genau das macht der PS Schnipsel oben ja , nur die entsprechenden Teile ersetzen 🙂.
Ich möchte nur die Ausdrücke übersetzen, den Code unberührt lassen.
Genau das macht der PS Schnipsel oben ja , nur die entsprechenden Teile ersetzen 🙂.

Zitat von @codeless:
Was ich in dem Script nicht verstehe wie die Übersetzung stattfinden soll. Ich habe dann eine Originaldatei und eine zweite datei mit den vorher extrahierten und übersetzten Audrücken die ich in die original Datei dann wieder einsetzen möchte.
Die Variable "$Translation" ist nur ein Beispiel für die Übersetzung innerhalb des Skripts, du kannst die Übersetzungen auch problemlos mit Get-Content aus einer Textdatei laden die so aussiehtWas ich in dem Script nicht verstehe wie die Übersetzung stattfinden soll. Ich habe dann eine Originaldatei und eine zweite datei mit den vorher extrahierten und übersetzten Audrücken die ich in die original Datei dann wieder einsetzen möchte.
'player_pause' = 'Pause'
'player_play' = 'Abspielen'
.....
...
und dann mit ConvertFrom-StringData in das Skript als Object laden und so nutzen wie oben gezeigt ...
Oder kann Powershell auch übersetzen das wäre für mich neu.
Nachbauen ist ja kein Thema wie du oben siehst! Aber auch eine automatische Online-Übersetzung wäre kein Problem, deswegen heißt es ja Powershell