Inhalt mehrere Dateien via Batch ändern
Hallo,
bei ca. 300 Text-Dateien muss ich in Zeile 5 die Zahlen "32" voranstellen.
Kann ich das mit Batch lösen?
Gruß
bei ca. 300 Text-Dateien muss ich in Zeile 5 die Zahlen "32" voranstellen.
Kann ich das mit Batch lösen?
Gruß
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 189001
Url: https://administrator.de/forum/inhalt-mehrere-dateien-via-batch-aendern-189001.html
Ausgedruckt am: 23.02.2025 um 12:02 Uhr
5 Kommentare
Neuester Kommentar
Hallo moses1980!

Versuch es mal damit (ungetestet):
Für die geänderten Dateien wird ein Unterordner (siehe Zeile 3) erzeugt ...
Grüße
bastla
[Edit] Zeilennummer und Präfix leichter anpassbar gemacht [/Edit]
Kann ich das mit Batch lösen?
Wenn Du könntest, hättest Du vermutlich nicht gefragt ... Versuch es mal damit (ungetestet):
@echo off & setlocal
set "Quelle=D:\Ordner mit 300 txt-Dateien"
set "Ziel=%Quelle%\Neu"
set "Pre=32"
set /a ZNr=5
md "%Ziel%" 2>nul
for %%i in ("%Quelle%\*.txt") do (
(for /f "delims=" %%z in ('findstr /n "^" "%%i"') do (
set "Zeile=%%z"
setlocal enabledelayedexpansion
for /f "delims=:" %%n in ("!Zeile!") do set Nr=%%n
if !Nr!==%ZNr% (echo %Pre%!Zeile:*:=!) else (echo(!Zeile:*:=!)
endlocal
))>"%Ziel%\%%~nxi"
)
Grüße
bastla
[Edit] Zeilennummer und Präfix leichter anpassbar gemacht [/Edit]
Hallo 
Da der Beitrag erst 6 Jahre alt ist... hänge ich mich mal dran
Ich brauche etwas Ähnliches:
Und zwar soll IN ALLEN VORHANDENEN UNTERORDNERN in der dort jeweils vorhandenen *.nfo-Datei immer in Zeile 2: <title>XXXXXXXXXXXXXXXXXXXX</title> (der tag ist bereits vorhanden, die 20 X sind nur ein Platzhalter) eben dieser Platzhalter mit dem jeweils individuellen Dateinamen der *.nfo-Datei (wahlweise der Name des Unterordners, in dem sie liegt = identisch) ausgetauscht werden.
Beispiel:
Unterordner: "Forrest Gump", darin liegt eine "Forrest Gump.nfo", in deren 2. Zeile steht: <title>XXXXXXXXXXXXXXXXXXXX</title>
Diese 2. Zeile soll jetzt in <title>Forrest Gump</title> geändert werden.
Für alle weiteren vorhandenen Unterordner genauso jeweils mit ihrem *.nfo-Dateinamen (= Ordnernamen)...
Dies brauche ich für mehrere Hauptordner mit jeweils unterschiedlich vielen Unterordnern darin...
Die Kodierung des Inhalts der *.nfo-Dateien ist immer UTF-8 und die Sprache XML.
Falls es wichtig ist: im XML-Aufbau sind die Zeilen der Übersicht halber ja oft eingerückt, so auch diese Zeile 2. Davor sind genau 7 Leerzeichen.
Also nicht:
<title>XXXXXXXXXXXXXXXXXXXX</title>
sondern:
7 Leerzeichen<title>XXXXXXXXXXXXXXXXXXXX</title>
Ich hoffe, das ist so verständlich
So eine batch-Datei würde mir wirklich jede Menge Arbeit ersparen
Vielen herzlichen Dank im Voraus, falls das jemand hinbekommt
Viele Grüße
Da der Beitrag erst 6 Jahre alt ist... hänge ich mich mal dran
Ich brauche etwas Ähnliches:
Und zwar soll IN ALLEN VORHANDENEN UNTERORDNERN in der dort jeweils vorhandenen *.nfo-Datei immer in Zeile 2: <title>XXXXXXXXXXXXXXXXXXXX</title> (der tag ist bereits vorhanden, die 20 X sind nur ein Platzhalter) eben dieser Platzhalter mit dem jeweils individuellen Dateinamen der *.nfo-Datei (wahlweise der Name des Unterordners, in dem sie liegt = identisch) ausgetauscht werden.
Beispiel:
Unterordner: "Forrest Gump", darin liegt eine "Forrest Gump.nfo", in deren 2. Zeile steht: <title>XXXXXXXXXXXXXXXXXXXX</title>
Diese 2. Zeile soll jetzt in <title>Forrest Gump</title> geändert werden.
Für alle weiteren vorhandenen Unterordner genauso jeweils mit ihrem *.nfo-Dateinamen (= Ordnernamen)...
Dies brauche ich für mehrere Hauptordner mit jeweils unterschiedlich vielen Unterordnern darin...
Die Kodierung des Inhalts der *.nfo-Dateien ist immer UTF-8 und die Sprache XML.
Falls es wichtig ist: im XML-Aufbau sind die Zeilen der Übersicht halber ja oft eingerückt, so auch diese Zeile 2. Davor sind genau 7 Leerzeichen.
Also nicht:
<title>XXXXXXXXXXXXXXXXXXXX</title>
sondern:
7 Leerzeichen<title>XXXXXXXXXXXXXXXXXXXX</title>
Ich hoffe, das ist so verständlich
So eine batch-Datei würde mir wirklich jede Menge Arbeit ersparen
Vielen herzlichen Dank im Voraus, falls das jemand hinbekommt
Viele Grüße

Da der Beitrag erst 6 Jahre alt ist... hänge ich mich mal dran
Bitte erst mal die Richtlinien lesenKeine Takeovers. Versuche nicht, Beiträge anderer Autoren mit Ihren Fragen zu anderen Themen zu übernehmen. Eröffne lieber einen neuen eigenen Beitrag.
Vielen herzlichen Dank im Voraus, falls das jemand hinbekommt
Nicht weiter schwer ...Normalerweise macht man das ja mit XML-Interpreter, da hier aber der Aufbau deiner Dateien unbekannt ist hier ausnahmsweise via String-Replacement.
@echo off
set "ordner=D:\Illegalkopiertefilme"
powershell -ExecutionPolicy ByPass -NoProfile -Command "gci "%ordner%" -Filter *.nfo -Recurse -Force | %%{(gc $_.Fullname) -replace '(?<=<title>).*?(?=</title>)',$_.Directory.Name | sc $_.Fullname -Force -Verbose -Encoding UTF8}"
Hallo decathlon,
ich hätte ja mit Allem gerechnet, aber nicht mit einer so ultraschnellen und funktionierenden Hilfe! Tausend Dank!
Entschuldigung, dass ich mich hier drangehängt habe, das hätte ich auch ohne Richtlinien besser wissen können (müssen).
Ich habe direkt zwei weitere Ideen, die ich gleich in einem eigenen Kommentar beschreibe.
Vielen herzlichen Dank noch einmal. Das hilft mir ungemein
ich hätte ja mit Allem gerechnet, aber nicht mit einer so ultraschnellen und funktionierenden Hilfe! Tausend Dank!
Entschuldigung, dass ich mich hier drangehängt habe, das hätte ich auch ohne Richtlinien besser wissen können (müssen).
Ich habe direkt zwei weitere Ideen, die ich gleich in einem eigenen Kommentar beschreibe.
Vielen herzlichen Dank noch einmal. Das hilft mir ungemein