Jede Zeile einer TXT Datei in eine Datei schreiben
Moin...
hoffe auf nachträgliche Hilfe zu Weihnachten..... ;>)
also jede 1. Zeile einer txt Datei die sich in d:\Daten\ befinden soll in eine txt Datei geschrieben werden und mit Pfandangabe wo sich diese Datei befinden.
Da immer wieder in diesen Dateien gesucht wird habe ich überlegt das man erstamal alle Datei duchsucht und dann nur noch in der "Ergebnissdatei" sucht.
Im Ordner d:\Daten liegen ca 1000 Unterordner somit dauert die Suche in allen Dateien immer etwas und die Platte wird nicht immer wieder so stark beansprucht.
Ergebinss könnte so aussehen...
Daten der 1.Zeile d:\daten\ordner_xyz
Daten der 1. Zeile d:\daten\ordner_abc
usw
Gruß
hoffe auf nachträgliche Hilfe zu Weihnachten..... ;>)
also jede 1. Zeile einer txt Datei die sich in d:\Daten\ befinden soll in eine txt Datei geschrieben werden und mit Pfandangabe wo sich diese Datei befinden.
Da immer wieder in diesen Dateien gesucht wird habe ich überlegt das man erstamal alle Datei duchsucht und dann nur noch in der "Ergebnissdatei" sucht.
Im Ordner d:\Daten liegen ca 1000 Unterordner somit dauert die Suche in allen Dateien immer etwas und die Platte wird nicht immer wieder so stark beansprucht.
Ergebinss könnte so aussehen...
Daten der 1.Zeile d:\daten\ordner_xyz
Daten der 1. Zeile d:\daten\ordner_abc
usw
Gruß
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 132333
Url: https://administrator.de/forum/jede-zeile-einer-txt-datei-in-eine-datei-schreiben-132333.html
Ausgedruckt am: 03.04.2025 um 20:04 Uhr
8 Kommentare
Neuester Kommentar
Hallo bodyparts,
ungetestet etwa so:
Grüße
rubberman
ungetestet etwa so:
@echo off &setlocal
set Quelle=d:\daten
set Ergebnisdatei=d:\test.txt
type nul>"%Ergebnisdatei%"
pushd "%Quelle%"
for /f "delims=" %%a in ('dir /a-d /b /s *.txt') do set "Pfad=%%~dpa" &call :sub "%%a"
popd
goto :eof
:sub
set /p ersteZeile=<%1
>>"%Ergebnisdatei%" echo %ersteZeile% %Pfad%
goto :eof
Grüße
rubberman
Hallo bodyparts,
zu diesem Zweck ist die erzeugte Datei nicht geeignet. Grund: man muss Text und Pfad einigermaßen vernünftig wieder trennen können. Das Leerzeichen ist dafür ungeeignet.
Also ändere zunächst Zeile 13 im ersten Batch zu:
und erzeuge damit einen neue Ergebnisdatei.
Der Batch für dein Vorhaben könnte dann etwa so aussehen:
Gruß
rubberman
zu diesem Zweck ist die erzeugte Datei nicht geeignet. Grund: man muss Text und Pfad einigermaßen vernünftig wieder trennen können. Das Leerzeichen ist dafür ungeeignet.
Also ändere zunächst Zeile 13 im ersten Batch zu:
>>"%Ergebnisdatei%" echo "%Pfad%"?%ersteZeile%
Der Batch für dein Vorhaben könnte dann etwa so aussehen:
@echo off &setlocal
set source=d:\test.txt
set /p "findthis=Gib die Suchzeichenfolge ein: "
for /f "usebackq delims=? tokens=1*" %%a in ("%source%") do (
echo %%b|findstr /i /l /c:"%findthis%">nul &&(start "" "explorer.exe" /n,/e,%%a &pause)
)
Gruß
rubberman
Hallo bodyparts,
OK. Erstmal komme ich jetzt erst dahinter, wie das ganze aussehen soll und zu Zweiten war das Trennzeichen ein "?" und darf keinesfalls ein "&" sein!
Eigentlich kann ich dir aber ohne weiteres nicht helfen. Nehmen wir an, eine Datei liegt unter "C:\Daten\irgendwo" und die erste Zeile ist "name c", dann ergibt sich in der test.txt folgende Zeile:
Die Frage ist aber:
Steht in der ersten Zeile immer das Format
oder könnte dort auch
stehen?
Grüße
rubberman
Und:
Wenn du eh nur das x hinter name benötigst, wozu dann überhaupt der Pfad "C:\Daten\irgendwo\" mit in die Datei schreiben? Dann würde doch die erste Zeile der Datei völlig ausreichen, oder?
OK. Erstmal komme ich jetzt erst dahinter, wie das ganze aussehen soll und zu Zweiten war das Trennzeichen ein "?" und darf keinesfalls ein "&" sein!
Eigentlich kann ich dir aber ohne weiteres nicht helfen. Nehmen wir an, eine Datei liegt unter "C:\Daten\irgendwo" und die erste Zeile ist "name c", dann ergibt sich in der test.txt folgende Zeile:
"C:\Daten\irgendwo\"?name c
Die Frage ist aber:
Steht in der ersten Zeile immer das Format
name x
blabla name x blub
Grüße
rubberman
Und:
Wenn du eh nur das x hinter name benötigst, wozu dann überhaupt der Pfad "C:\Daten\irgendwo\" mit in die Datei schreiben? Dann würde doch die erste Zeile der Datei völlig ausreichen, oder?