batch: Eigenen Dateinamen in Texdatei schreiben

haggo

bekommt Übersicht
hiho,

ich machs so kurz wie möglich :D

- ich habe ca. 12.000 verschiedene *.txt files in verschiedenen unterordnern
- die dateinamen bestehen aus datum und urzeit "2004.11.04_21.40.21.txt"

nun möchte ich per batch den dateinamen auslesen und in die erste zeile derjenigen textdatei schreiben
also in jeder einzelnen datei soll in der ersten zeile sein eigener dateiname stehen

kann da mir da jemand helfen? ps. wenn möglich genau erklähren, bin nich die leuchte in batch :rolleyes:
 
Da du dich in Batch ja schon ein bisschen auskennst ;) lasse ich den Anfang mal weg (@echo off/on, title etc.)

Ersteinmal musst du die Batch in das Verzeichnis kopieren, in dem das *.txt-File liegt.

Dann kopierst du den Dateinamen in eine Variable.
Sollte mit diesem Code gehen:
Code:
for /F %%i in ('dir /B *.txt') do set Datei=%%~ni

Der Dateiname ist nun in der Variable Datei.

Dann kopierst du den Rest des *.txt-Files in eine andere Variable.
Sollte so gehen:
Code:
set /a "Inhalt=<%~dp0\%Datei%.txt"

Es wird einfach eine Variabel mit dem Inhalt erstellt.

Dann erstellst du eine neue *.txt-Datei in der Du dann den Inhalt kopierst:
Code:
creat "%~dp0\%Datei%_mitFilename.txt"

creat -> erstellen einer Datei

Dann kopierst du noch den Inhalt einfach mit echo in das erstellte File:
Code:
echo %Datei% >> "%~dp0\%Datei%_mitFilename.txt"
echo %Inhalt% >> "%~dp0\%Datei%_mitFilename.txt"

Das war's.

Probiers aber vorher lieber mit einer Test-Datei aus, bevor irgendetwas schief läuft ;)

Gruß
bastla
 
Oben