Batch - Dateinamen aus Unterordner lesen und zusammen mit String in Datei schreiben
Hi,
irgendwie habe ich meine Frage noch nicht gefunden, also poste ich mal was Neues
Folgendes Problem:
Ich habe eine Ordnerstruktur mit x Unterordnern. Irgendwo in den Unterordner befinden sich bestimmte Text-Dateien (in meinem Fall mit .he-Endung). Jeder Ordner, der eine solche Datei enthält hat einen Unterordner \TM, der eine .tmw-Datei enthält.
Ich muss jetzt den Namen der .tmw-Datei irgendwie in die .he-Datei schreiben, zuzüglich eines Strings davor, und zwar für den kompletten Verzeichnis-Baum.
Ich habe z.B. versucht den Namen der .tmw-Datei in eine Variable zu schreiben [for /F "tokens=*" %i IN ('dir %CD%\_TM\*.tmw /B') do (SET TMW=%i)] die ich dann z.B. mit dem echo command inklusive eines Strings an die .he-Datei anhängen könnte. Aber das müsste dann ja für alle .he-Dateien laufen...
Ich bastel schon ewig dran, vielleicht hat jemand ja eine Idee. hoffe ich konnte es verständlich rüber bringen...
Tausend dank vorab!
Gruß,
/micha
irgendwie habe ich meine Frage noch nicht gefunden, also poste ich mal was Neues
Folgendes Problem:
Ich habe eine Ordnerstruktur mit x Unterordnern. Irgendwo in den Unterordner befinden sich bestimmte Text-Dateien (in meinem Fall mit .he-Endung). Jeder Ordner, der eine solche Datei enthält hat einen Unterordner \TM, der eine .tmw-Datei enthält.
Ich muss jetzt den Namen der .tmw-Datei irgendwie in die .he-Datei schreiben, zuzüglich eines Strings davor, und zwar für den kompletten Verzeichnis-Baum.
Ich habe z.B. versucht den Namen der .tmw-Datei in eine Variable zu schreiben [for /F "tokens=*" %i IN ('dir %CD%\_TM\*.tmw /B') do (SET TMW=%i)] die ich dann z.B. mit dem echo command inklusive eines Strings an die .he-Datei anhängen könnte. Aber das müsste dann ja für alle .he-Dateien laufen...
Ich bastel schon ewig dran, vielleicht hat jemand ja eine Idee. hoffe ich konnte es verständlich rüber bringen...
Tausend dank vorab!
Gruß,
/micha
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 98627
Url: https://administrator.de/forum/batch-dateinamen-aus-unterordner-lesen-und-zusammen-mit-string-in-datei-schreiben-98627.html
Ausgedruckt am: 25.05.2025 um 05:05 Uhr
5 Kommentare
Neuester Kommentar
Hallo...
ich hoffe ich habe dein Problem verstanden:
Zwei Dateien:
Datei 1: start.bat Positioniert: Oberster Order der untersucht werden soll.
Datei 2: HeDateiVerarbeitung.bat Positioniert: siehe Datei 1
Erklärung unten!!!
Inhalt Datei 1:
Inhalt Datei 2:
Erklärung:
start.bat durchläuft alle Unterordner in dem die Datei start.bat sich befindet und sucht nach .he-Dateien und schreibt die Lagerorte in eine Datei im gleichen Ordner. (ergebnis.txt)
Diese Ergebnisdatei wird im nächsten Schritt Zeile für Zeile durchlaufen und analysiert mit der HeVerarbeitung.bat.
In der HeVerarbeitung.bat werden die Daten jeder einzelnen Zeile in Variablen zur weiteren Verarbeitung gespeichert.
Sollte der Pfad %TMWPFad% existieren, listet er alle *.tmw Dateien in diesem Verzeichnis auf und schreibt das Ergebnis in die He-Datei (die er sich in der Variable HeDatei gemerkt hat)
Nach Verarbeitung der Datei springt er zur nächsten Zeile der ergebnis.txt und so weiter und so fort
Hoffe ich konnte Dir helfen... verstehe zwar nicht wofür Du es brauchst... aber naja ;)
Feedback wäre gut, ob es funktioniert oder nicht...
Gruß
Markus
ich hoffe ich habe dein Problem verstanden:
Zwei Dateien:
Datei 1: start.bat Positioniert: Oberster Order der untersucht werden soll.
Datei 2: HeDateiVerarbeitung.bat Positioniert: siehe Datei 1
Erklärung unten!!!
Inhalt Datei 1:
@echo off
dir /S /B *.he>"%~dp0ergebnis.txt"
for /F "tokens=*" %%i IN (ergebnis.txt) DO call HeDateiVerarbeitung.bat "%%i"
echo Fertig!
pause
Inhalt Datei 2:
set "HeDatei=%1"
set "HePfad=%~dp1"
set "TMWPfad=%HePfad%TM\"
if exist "%TMWPFAD%" dir /B /S "%TMWPfad%*.tmw" >%HeDatei%
Erklärung:
start.bat durchläuft alle Unterordner in dem die Datei start.bat sich befindet und sucht nach .he-Dateien und schreibt die Lagerorte in eine Datei im gleichen Ordner. (ergebnis.txt)
Diese Ergebnisdatei wird im nächsten Schritt Zeile für Zeile durchlaufen und analysiert mit der HeVerarbeitung.bat.
In der HeVerarbeitung.bat werden die Daten jeder einzelnen Zeile in Variablen zur weiteren Verarbeitung gespeichert.
Sollte der Pfad %TMWPFad% existieren, listet er alle *.tmw Dateien in diesem Verzeichnis auf und schreibt das Ergebnis in die He-Datei (die er sich in der Variable HeDatei gemerkt hat)
Nach Verarbeitung der Datei springt er zur nächsten Zeile der ergebnis.txt und so weiter und so fort
Hoffe ich konnte Dir helfen... verstehe zwar nicht wofür Du es brauchst... aber naja ;)
Feedback wäre gut, ob es funktioniert oder nicht...
Gruß
Markus
Hallo Micha,
dein Weg zum Glück steht hier
Bitte einfach Datei 2 (HeDateiVerarbeitung) durch diese austauschen. Meinem Test nach sollte es klappen. Feedback erwünscht, ob es funktioniert
Bin mal gespannt
Gruß
Markus
dein Weg zum Glück steht hier
Bitte einfach Datei 2 (HeDateiVerarbeitung) durch diese austauschen. Meinem Test nach sollte es klappen. Feedback erwünscht, ob es funktioniert
set "HeDatei=%1"
set "HePfad=%~dp1"
set "TMWPfad=%HePfad%TM\"
if exist "%TMWPfad%" (
echo TargetEncoding=UTF-8>%HeDatei%
echo ExportGlossary=>>%HeDatei%
echo NumberOfUpdates=1>>%HeDatei%
echo LastValidationReport=>>%HeDatei%
set "DeineZeile=Glossary_0=\TM"
for /F " usebackq tokens=*" %%i IN (`dir /B "%TMWPfad%*.tmw"`) DO echo %DeineZeile%\%%i>>%HeDatei%
)
Bin mal gespannt
Gruß
Markus