Batch für Textdatei, bestimmte Zeile suchen und ändern - Teil 2
Hallo,
ich möchte gerne das Problem aus diesem Thread, welches durch die tolle Hilfe von bastla gelöst wurde (Danke hierfür nochmal), erweitern bzw. fortsetzen.
In vorangegangenen Thread ging es darum, in einer Reihe von Textdateien, bestimmte Zeilen zu suchen und dort einen Wert zu ändern. Dabei wurden für alle Dateien dieser Werte geändert. Meine Problem jetzt ist jedoch, dass ich einzelne Dateien nacheinander verändern möchte.
Zunächst zur Vorgehensweise:
Ich erstelle mir eine Master Datei (Ausgangsdatei), diese kopiere ich und benenne die Kopien gleichzeitig entsprechend um.
Jetzt haben alle meine Input Dateien jedoch den gleichen Inhalt. Da sich die Dateien jedoch bei bestimmten Werten (Zeilen) unterscheiden müssen, muss ich diese Werte in jeder Datei ändern.
Dabei gibt es drei verschiedene Arten, neue Werte in die Dateien einzutragen:
Zu bemerken ist jedoch, dass nicht wie bei meinen vorherigen Thread, nach einer bestimmten Bezeichnung gesucht werden muss, sondern einfach eine bestimmte Zeile anhand der Zeilennummer komplett geändert werden kann. Ich denke dies ist dann einfacher zu programmieren, oder? Dabei kann der Wert an einer beliebigen Stelle der Zeile (in diese Fall sind sie linksbündig) stehen.
Dem Programm FAST (welches die Dateien einliest und berechnet) ist es “egal” ob die Bezeichnungen und Beschreibungen wegfallen, es braucht nur die Werte. Wichtig ist jedoch, dass sich die Zeilenanzahl und -reihenfolge nicht ändert. Ich habe eine dieser Dateien mal auf das wesentliche reduziert und die Bezeichnungen und Beschreibungen entfernt. Eine solche “bereinigte Datei” habe ich hier
Master_Input_bereinigt
online gestellt.
Ein Beispiel:
Ich habe aus der Master Input Datei eine Reihe von weiteren Input Dateien erzeugt, mit folgendem Batch:
dies ergibt Folgende Dateien:
Jetzt möchte ich Schritt für Schritt diese Dateien, also deren Inhalt in einer bestimmten Zeile ändern. Dabei werden für jede Datei immer die selben Zeilen geändert, jedoch mit verschiedenen Werten.
Als erstes wird bei Datei „LC1.1_MonopileOffshore.fst“, der Wert in Zeile 27 (9999,9) durch eine zufällig generierte Zahl (in diesem Falle zwischen 1000 und 9999) geändert werden, in 8642.3.
Außerdem wird der Wert in Zeile 10 (560) durch eine Eingabe des Benutzers geändert (in 630)
Des weiteren befinden sich in den Input Dateien Pfadangaben zu anderen Dateien, diese Pfadangaben werden aus einer Liste gelesen und in die Datei geschrieben (wiederum in eine bestimmte Zeile, in diesem Falle Zeile132). Eine solche Liste von Pfadangaben befindet sich hier:
Liste mit Pfadnamen
Diese Pfadnamen-Liste wurde anhand bereits existierender Dateien erstellt.
Dabei soll so vorgegangen werden, dass für die erste zu bearbeitende Input Datei (hier: "LC1.1_MonopileOffshore.fst") auch der erste Pfadname aus der Liste
(in erster Zeile, hier "..\Input_Platform\LC1.1_MonopileOffshore_Platform.dat") gewählt wird, und für die zweite Datei dann der zweite Pfandname (in zweiten Zeile der Liste) usw.
Diese Schritte werden dann für jede Input-Datei durchgeführt.
Hier mal die ersten drei bearbeiteten Dateien, Augenmerk ist auf Zeile 10, 37 und 132 zu richten (mit Pfeil markiert). Das sind die Zeilen die sich geändert haben:
LC1.1_MonopileOffshore_geaendert
LC1.2_MonopileOffshore_geaendert
LC1.3_MonopileOffshore_geaendert
Anders als hier, wäre es gut wenn die vorhandenen Dateien einfach überschrieben werden und keine neue erstellt, wen doch, wäre dies jedoch nicht so tragisch.
Ich wäre euch wirklich sehr dankbar wenn ihr mir auch dabei helfen könntet! Ich weiß dass es sehr kompliziert ist, ich hoffe ich habe alles soweit verständlich erklärt.
Vielen Dank schonmal.
Grüße
Lukas
P.S.: Da das Problem aus dem vorherigen Thread u.a. mit VB Script gelöst wurde, und dies vielleicht auch hier nötig ist, bin ich mir nicht sicher ob dies hier der richtige Bereich ist. Entschuldigt bitte falls es falsch ist.
ich möchte gerne das Problem aus diesem Thread, welches durch die tolle Hilfe von bastla gelöst wurde (Danke hierfür nochmal), erweitern bzw. fortsetzen.
In vorangegangenen Thread ging es darum, in einer Reihe von Textdateien, bestimmte Zeilen zu suchen und dort einen Wert zu ändern. Dabei wurden für alle Dateien dieser Werte geändert. Meine Problem jetzt ist jedoch, dass ich einzelne Dateien nacheinander verändern möchte.
Zunächst zur Vorgehensweise:
Ich erstelle mir eine Master Datei (Ausgangsdatei), diese kopiere ich und benenne die Kopien gleichzeitig entsprechend um.
Jetzt haben alle meine Input Dateien jedoch den gleichen Inhalt. Da sich die Dateien jedoch bei bestimmten Werten (Zeilen) unterscheiden müssen, muss ich diese Werte in jeder Datei ändern.
Dabei gibt es drei verschiedene Arten, neue Werte in die Dateien einzutragen:
- zufällige Zahl (in einen bestimmten Bereich) die generiert und eingegeben wird
- Eingabe eines Wertes durch den Benutzer
- Werte werden aus einer anderen Liste (meistens Pfadnamen) ausgelesen und eingetragen.
Zu bemerken ist jedoch, dass nicht wie bei meinen vorherigen Thread, nach einer bestimmten Bezeichnung gesucht werden muss, sondern einfach eine bestimmte Zeile anhand der Zeilennummer komplett geändert werden kann. Ich denke dies ist dann einfacher zu programmieren, oder? Dabei kann der Wert an einer beliebigen Stelle der Zeile (in diese Fall sind sie linksbündig) stehen.
Dem Programm FAST (welches die Dateien einliest und berechnet) ist es “egal” ob die Bezeichnungen und Beschreibungen wegfallen, es braucht nur die Werte. Wichtig ist jedoch, dass sich die Zeilenanzahl und -reihenfolge nicht ändert. Ich habe eine dieser Dateien mal auf das wesentliche reduziert und die Bezeichnungen und Beschreibungen entfernt. Eine solche “bereinigte Datei” habe ich hier
Master_Input_bereinigt
online gestellt.
Ein Beispiel:
Ich habe aus der Master Input Datei eine Reihe von weiteren Input Dateien erzeugt, mit folgendem Batch:
@echo off
set Ausgangsdatei=Master_FAST_input_bereinigt.fst
set prefix=LC
set suffix=_MonopileOffshore.fst
set i=1
set j=1
type %Ausgangsdatei% > %prefix%%i%.%j%%suffix%
:A
set /A j=j+1
type %Ausgangsdatei% > %prefix%%i%.%j%%suffix%
if %j%==5 goto :B
goto :A
:B
set j=1
set /A i=i+1
IF %i%==6 (exit)
type %Ausgangsdatei% > %prefix%%i%.%j%%suffix%
goto :A
dies ergibt Folgende Dateien:
LC1.1_MonopileOffshore.fst
LC1.2_MonopileOffshore.fst
LC1.3_MonopileOffshore.fst
LC1.4_MonopileOffshore.fst
LC1.5_MonopileOffshore.fst
LC2.1_MonopileOffshore.fst
LC2.2_MonopileOffshore.fst
LC2.3_MonopileOffshore.fst
LC2.4_MonopileOffshore.fst
LC2.5_MonopileOffshore.fst
LC3.1_MonopileOffshore.fst
LC3.2_MonopileOffshore.fst
LC3.3_MonopileOffshore.fst
LC3.4_MonopileOffshore.fst
LC3.5_MonopileOffshore.fst
LC4.1_MonopileOffshore.fst
LC4.2_MonopileOffshore.fst
LC4.3_MonopileOffshore.fst
LC4.4_MonopileOffshore.fst
LC4.5_MonopileOffshore.fst
LC5.1_MonopileOffshore.fst
LC5.2_MonopileOffshore.fst
LC5.3_MonopileOffshore.fst
LC5.4_MonopileOffshore.fst
LC5.5_MonopileOffshore.fst
LC1.2_MonopileOffshore.fst
LC1.3_MonopileOffshore.fst
LC1.4_MonopileOffshore.fst
LC1.5_MonopileOffshore.fst
LC2.1_MonopileOffshore.fst
LC2.2_MonopileOffshore.fst
LC2.3_MonopileOffshore.fst
LC2.4_MonopileOffshore.fst
LC2.5_MonopileOffshore.fst
LC3.1_MonopileOffshore.fst
LC3.2_MonopileOffshore.fst
LC3.3_MonopileOffshore.fst
LC3.4_MonopileOffshore.fst
LC3.5_MonopileOffshore.fst
LC4.1_MonopileOffshore.fst
LC4.2_MonopileOffshore.fst
LC4.3_MonopileOffshore.fst
LC4.4_MonopileOffshore.fst
LC4.5_MonopileOffshore.fst
LC5.1_MonopileOffshore.fst
LC5.2_MonopileOffshore.fst
LC5.3_MonopileOffshore.fst
LC5.4_MonopileOffshore.fst
LC5.5_MonopileOffshore.fst
Jetzt möchte ich Schritt für Schritt diese Dateien, also deren Inhalt in einer bestimmten Zeile ändern. Dabei werden für jede Datei immer die selben Zeilen geändert, jedoch mit verschiedenen Werten.
Als erstes wird bei Datei „LC1.1_MonopileOffshore.fst“, der Wert in Zeile 27 (9999,9) durch eine zufällig generierte Zahl (in diesem Falle zwischen 1000 und 9999) geändert werden, in 8642.3.
Außerdem wird der Wert in Zeile 10 (560) durch eine Eingabe des Benutzers geändert (in 630)
Des weiteren befinden sich in den Input Dateien Pfadangaben zu anderen Dateien, diese Pfadangaben werden aus einer Liste gelesen und in die Datei geschrieben (wiederum in eine bestimmte Zeile, in diesem Falle Zeile132). Eine solche Liste von Pfadangaben befindet sich hier:
Liste mit Pfadnamen
Diese Pfadnamen-Liste wurde anhand bereits existierender Dateien erstellt.
Dabei soll so vorgegangen werden, dass für die erste zu bearbeitende Input Datei (hier: "LC1.1_MonopileOffshore.fst") auch der erste Pfadname aus der Liste
(in erster Zeile, hier "..\Input_Platform\LC1.1_MonopileOffshore_Platform.dat") gewählt wird, und für die zweite Datei dann der zweite Pfandname (in zweiten Zeile der Liste) usw.
Diese Schritte werden dann für jede Input-Datei durchgeführt.
Hier mal die ersten drei bearbeiteten Dateien, Augenmerk ist auf Zeile 10, 37 und 132 zu richten (mit Pfeil markiert). Das sind die Zeilen die sich geändert haben:
LC1.1_MonopileOffshore_geaendert
LC1.2_MonopileOffshore_geaendert
LC1.3_MonopileOffshore_geaendert
Anders als hier, wäre es gut wenn die vorhandenen Dateien einfach überschrieben werden und keine neue erstellt, wen doch, wäre dies jedoch nicht so tragisch.
Ich wäre euch wirklich sehr dankbar wenn ihr mir auch dabei helfen könntet! Ich weiß dass es sehr kompliziert ist, ich hoffe ich habe alles soweit verständlich erklärt.
Vielen Dank schonmal.
Grüße
Lukas
P.S.: Da das Problem aus dem vorherigen Thread u.a. mit VB Script gelöst wurde, und dies vielleicht auch hier nötig ist, bin ich mir nicht sicher ob dies hier der richtige Bereich ist. Entschuldigt bitte falls es falsch ist.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Kommentar vom Moderator Biber am 26.11.2011 um 20:57:20 Uhr
Ein "Gefällt mir"-Smiley für den respektvollen und sorgfältig erstellten Beitrag kommt von mir.
Content-ID: 176800
Url: https://administrator.de/forum/batch-fuer-textdatei-bestimmte-zeile-suchen-und-aendern-teil-2-176800.html
Ausgedruckt am: 19.05.2025 um 15:05 Uhr
7 Kommentare
Neuester Kommentar
Hallo Overdue!
Nach der sehr ausführlichen Darstellung bleiben für mich trotzdem noch Fragen offen:
Wird die Liste mit den Pfadnamen eigentlich benötigt? Wie ich das verstanden habe, wäre doch zB in "LC2.5_MonopileOffshore.fst" der Pfad "..\Input_Platform\LC2.5_MonopileOffshore_Platform.dat" einzusetzen - demnach also nur "..\Input_Platform\" + Dateiname ohne Typ + "_Platform.dat"?
Umgekehrt würde es sich doch anbieten, die Benutzereingaben (für Zeile 10) tatächlich in eine Liste (zusammen mit den Dateinamen oder wenigstens Laufnummern wie "LC2.5") einzutragen - damit wäre eine bio-optische Kontrolle (Drüberschauen
) möglich, und der Batch könnte ohne Unterbrechungen für die Eingabe durchlaufen. Diese Liste könnte also etwa so aussehen:
Zu beachten wäre, dass nach der letzten Datenzeile noch eine Zeilenschaltung folgt.
Unter der Annahme, dass beide Fragen meinen Überlegungen entsprechend zu beantworten wären, könnte der Batch so aussehen:
Grüße
bastla
Nach der sehr ausführlichen Darstellung bleiben für mich trotzdem noch Fragen offen:
Wird die Liste mit den Pfadnamen eigentlich benötigt? Wie ich das verstanden habe, wäre doch zB in "LC2.5_MonopileOffshore.fst" der Pfad "..\Input_Platform\LC2.5_MonopileOffshore_Platform.dat" einzusetzen - demnach also nur "..\Input_Platform\" + Dateiname ohne Typ + "_Platform.dat"?
Umgekehrt würde es sich doch anbieten, die Benutzereingaben (für Zeile 10) tatächlich in eine Liste (zusammen mit den Dateinamen oder wenigstens Laufnummern wie "LC2.5") einzutragen - damit wäre eine bio-optische Kontrolle (Drüberschauen
630 LC1.1
510 LC1.2
720 LC1.3
...
580 LC5.5
Unter der Annahme, dass beide Fragen meinen Überlegungen entsprechend zu beantworten wären, könnte der Batch so aussehen:
@echo off & setlocal
set "Ordner=D:\Ordner mit fst-Dateien"
set "Eingaben=D:\Eingaben.txt"
set "BasisPfad=..\Input_Platform"
set "Anhang=_Platform.dat"
set "T=%temp%\Temp.fst"
pushd "%Ordner%"
for /f "delims=" %%i in ('dir /b /a-d LC??_*.fst') do call :ProcessFile "%%i"
popd
goto :eof
:ProcessFile
set "Name=%~n1"
for /f "delims=_" %%i in ("%Name%") do set "Nr=%%i"
set /a ZGanze=%random%%%9000+1000
set /a ZDez=%random%%%10
set "Ein="
for /f %%i in ('findstr /e "%Nr%" "%Eingaben%"') do set "Ein=%%i"
if not defined Ein echo %1 ## Eingabe nicht gefunden & goto :eof
set "Pfad=%BasisPfad%%Name%%Anhang%"
move %1 %T%
(
for /f "tokens=1* delims=:" %%i in ('findstr /n "^" %T%') do (
echo #10#27#132#|findstr "#%%i#">nul && (
if %%i==10 echo %Ein%.0
if %%i==27 echo %ZGanze%.%ZDez%
if %%i==132 echo %Pfad%
) || (
echo\%%j
)
)
)>%1
echo %1 OK
goto :eof
bastla
Hallo Overdue!
Vorweg zu allen Listen: Um den Eintrag für die jeweils bearbeitete Datei leichter finden zu können, sollte jede der verwendeten Listen (für die Zeile 27 finde ich eine eigene Liste unnötig) den Dateinamen (übersichtlicher wird das, wenn der Dateiname am Zeilenanfang eingetragen ist) enthalten, wobei das Trennzeichen (relativ) frei gewählt werden kann (es darf nur nicht in den Daten vorkommen) - als Beispiel mit TAB:
Die Zeilennummer kann in die Liste aufgenommen werden, allerdings muss jede Liste individuell im Batch angesprochen werden (wenn Du nicht alle Werte in eine einzige Liste packen kannst / willst) ...
Für die Angabe der zu verarbeitenden Dateien wäre die Aufteilung in Pfad ("..\Input_FAST") und Dateimaske ("*.fst") vorteilhafter und mE auch nur einmalig (am Beginn des Batches) per direktem Eintrag festzulegen (und somit nicht in die Dateilisten aufzunehmen).
Der Batch (schneller wurde er durch die neuen Anforderungen definitiv nicht
) würde dann so aussehen:
Bitte beachten: In den Zeilen 21 und 25 ist als Delimiter jeweils ein TAB einzutragen!
Mit dem Bereich -2147483648 bis 2147483647 kommst Du zwar genau an die Arithmetik-Grenzen von Batch - da mit diesen Zahlen aber (soweit ich bisher weiß) ohnehin nicht gerechnet werden muss, wären auch größere Werte (als Kombination mehrerer Strings) machbar.
Grüße
bastla
Vorweg zu allen Listen: Um den Eintrag für die jeweils bearbeitete Datei leichter finden zu können, sollte jede der verwendeten Listen (für die Zeile 27 finde ich eine eigene Liste unnötig) den Dateinamen (übersichtlicher wird das, wenn der Dateiname am Zeilenanfang eingetragen ist) enthalten, wobei das Trennzeichen (relativ) frei gewählt werden kann (es darf nur nicht in den Daten vorkommen) - als Beispiel mit TAB:
132
LC1.1_MonopileOffshore.fst ..\Input_Platform\LC1.1_MonopileOffshore_Platform.dat
LC1.2_MonopileOffshore.fst ..\Input_Platform\LC1.2_MonopileOffshore_Platform.dat
LC1.3_MonopileOffshore.fst ..\Input_Platform\LC1.3_MonopileOffshore_Platform.dat
LC1.4_MonopileOffshore.fst ..\Input_Platform\LC1.4_MonopileOffshore_Platform.dat
LC1.5_MonopileOffshore.fst ..\Input_Platform\LC1.5_MonopileOffshore_Platform.dat
LC2.1_MonopileOffshore.fst ..\Input_Platform\LC2.1_MonopileOffshore_Platform.dat
LC2.2_MonopileOffshore.fst ..\Input_Platform\LC2.2_MonopileOffshore_Platform.dat
LC2.3_MonopileOffshore.fst ..\Input_Platform\LC2.3_MonopileOffshore_Platform.dat
LC2.4_MonopileOffshore.fst ..\Input_Platform\LC2.4_MonopileOffshore_Platform.dat
LC2.5_MonopileOffshore.fst ..\Input_Platform\LC2.5_MonopileOffshore_Platform.dat
LC3.1_MonopileOffshore.fst ..\Input_Platform\LC3.1_MonopileOffshore_Platform.dat
LC3.2_MonopileOffshore.fst ..\Input_Platform\LC3.2_MonopileOffshore_Platform.dat
LC3.3_MonopileOffshore.fst ..\Input_Platform\LC3.3_MonopileOffshore_Platform.dat
LC3.4_MonopileOffshore.fst ..\Input_Platform\LC3.4_MonopileOffshore_Platform.dat
LC3.5_MonopileOffshore.fst ..\Input_Platform\LC3.5_MonopileOffshore_Platform.dat
LC4.1_MonopileOffshore.fst ..\Input_Platform\LC4.1_MonopileOffshore_Platform.dat
LC4.2_MonopileOffshore.fst ..\Input_Platform\LC4.2_MonopileOffshore_Platform.dat
LC4.3_MonopileOffshore.fst ..\Input_Platform\LC4.3_MonopileOffshore_Platform.dat
LC4.4_MonopileOffshore.fst ..\Input_Platform\LC4.4_MonopileOffshore_Platform.dat
LC4.5_MonopileOffshore.fst ..\Input_Platform\LC4.5_MonopileOffshore_Platform.dat
LC5.1_MonopileOffshore.fst ..\Input_Platform\LC5.1_MonopileOffshore_Platform.dat
LC5.2_MonopileOffshore.fst ..\Input_Platform\LC5.2_MonopileOffshore_Platform.dat
LC5.3_MonopileOffshore.fst ..\Input_Platform\LC5.3_MonopileOffshore_Platform.dat
LC5.4_MonopileOffshore.fst ..\Input_Platform\LC5.4_MonopileOffshore_Platform.dat
LC5.5_MonopileOffshore.fst ..\Input_Platform\LC5.5_MonopileOffshore_Platform.dat
Für die Angabe der zu verarbeitenden Dateien wäre die Aufteilung in Pfad ("..\Input_FAST") und Dateimaske ("*.fst") vorteilhafter und mE auch nur einmalig (am Beginn des Batches) per direktem Eintrag festzulegen (und somit nicht in die Dateilisten aufzunehmen).
Der Batch (schneller wurde er durch die neuen Anforderungen definitiv nicht
@echo off & setlocal
set "Ordner=set "Ordner=..\Input_FAST"
set "Dateien=*.fst"
set "Eingaben=D:\Eingaben.txt"
set "Pfade=D:\Pfadliste.txt"
set /p EinZeile=<"%Eingaben%"
set /p PfadZeile=<"%Pfade%"
set ZufallZeile=27
set "T=%temp%\Temp-fst"
pushd "%Ordner%"
for /f "delims=" %%i in ('dir /b /a-d "%Dateien%"') do call :ProcessFile "%%i"
popd
goto :eof
:ProcessFile
set "Ein="
for /f "tokens=1* delims= " %%i in ('findstr /i /b /c:"%~nx1" "%Eingaben%"') do set "Ein=%%j"
if not defined Ein echo %1 ## Eingabe nicht gefunden & goto :eof
set "Pfad="
for /f "tokens=1* delims= " %%i in ('findstr /i /b /c:"%~nx1" "%Pfade%"') do set "Pfad=%%j"
if not defined Pfad echo %1 ## Pfad nicht gefunden & goto :eof
set /a ZGanze=%random%%%9000+1000
set /a ZDez=%random%%%10
move %1 %T%
(
for /f "tokens=1* delims=:" %%i in ('findstr /n "^" %T%') do (
echo #%EinZeile%#%ZufallZeile%#%PfadZeile%#|findstr "#%%i#">nul && (
if %%i==%EinZeile% echo %Ein%.0
if %%i==%ZufallZeile% echo %ZGanze%.%ZDez%
if %%i==%PfadZeile% echo %Pfad%
) || (
echo\%%j
)
)
)>%1
echo %1 OK
goto :eof
Mit dem Bereich -2147483648 bis 2147483647 kommst Du zwar genau an die Arithmetik-Grenzen von Batch - da mit diesen Zahlen aber (soweit ich bisher weiß) ohnehin nicht gerechnet werden muss, wären auch größere Werte (als Kombination mehrerer Strings) machbar.
Grüße
bastla
Hallo Overdue!
Schön, wenn's schon mal hilft ...
Zum Thema "TAB als Trennzeichen": Muss nicht
- wenn Du guten Gewissens ein Komma verwenden kannst, muss das ja nur (wie oben angesprochen) jeweils als Delimiter angegeben werden (auf TAB war ich gekommen, weil so die Daten etwas übersichtlicher sind) ...
Hinsichtlich des Zusammenfügens könntest Du es (frei nach rubberman) so versuchen:
In Zeile 10 wird als Trennzeichen noch TAB verwendet - kannst Du aber gerne austauschen ...
Grüße
bastla
Schön, wenn's schon mal hilft ...
Zum Thema "TAB als Trennzeichen": Muss nicht
Hinsichtlich des Zusammenfügens könntest Du es (frei nach rubberman) so versuchen:
@echo off & setlocal enabledelayedexpansion
set "InFile1=liste_Zieldaten.txt"
set "InFile2=liste_platform.txt"
set "OutFile=Zeile132.txt"
>"%OutFile%" echo 132
<"%InFile2%" >"%OutFile%" ( for /f "tokens=1* delims=:" %%a in ('findstr /n "^" "%InFile1%"') do (
set /p "Line="
echo\%%b !Line!
)
)
Grüße
bastla
... Nachtrag zur Frage
nicht genügt) könntest Du
durch
ersetzen ...
Sollten sich die Dateien zB in verschiedenen Ordnern befinden, wäre vermutlich für jeden Schleifendurchlauf ein zusätzliches
(und natürlich das zugehörige "
Grüße
bastla
ob man hier auch eine Liste von den Zieldateien einbinden kann?
Im einfachsten Fall (wenn die Vorgabe einer exakteren Dateimaske der Artset "Dateien=LC??_*.fst"
for /f "delims=" %%i in ('dir /b /a-d "%Dateien%"') do
for /f "usebackq delims=" %%i in ("%QuellDateiListe%") do
Sollten sich die Dateien zB in verschiedenen Ordnern befinden, wäre vermutlich für jeden Schleifendurchlauf ein zusätzliches
pushd "%%~dpi"
popd
") erforderlich.Grüße
bastla