viking
Goto Top

Dateinamen einer Textdatei aus der ersten Zeile erzeugen und zusätzlich Datei kopieren

Hallo, wieder mal eine kleine Frage.

Ich möchte per batch eine TXT Datei umbenennen, 2 mal an anderen Ort kopieren und Ursprungsdatei löschen.
Es sollen beide neuen Dateien auf in ein anderes Verzeichnis abgelegt werden, wobei der neue Name der Inhalt der ersten Zeile der Ursprungsdatei sein soll.
Einmal soll die Endung txt sein, einmal csv.
Beispiel:
Die Datei hat ursprünglich den Namen Test.txt und liegt auf C:\Temp\
Die erste Zeile der mehrzeiligen Datei hat den Inhalt "Mayer"
Nun sollen die neuen Dateien
Mayer.txt und Mayer.csv lauten und auf C:\Test\ gespeichert werden.
Die Ursprungsdatei soll auf C:\Temp soll gelöscht werden.

Wie kann man das lösen?

Gruß viking

Content-ID: 148540

Url: https://administrator.de/forum/dateinamen-einer-textdatei-aus-der-ersten-zeile-erzeugen-und-zusaetzlich-datei-kopieren-148540.html

Ausgedruckt am: 10.01.2025 um 11:01 Uhr

pieh-ejdsch
pieh-ejdsch 07.08.2010 um 09:17:14 Uhr
Goto Top
Moin viking,
hier als ausfühlicher Batch
setlocal
set "Dateiordner=C:\Temp"  
set Datei="Test.txt"  
set "1stOrdner=C:\Test"  
set "1stExt=.txt"  
set "2ndExt=.csv"  
pushD "%DateiOrdner%"  
for %%i in (%Datei%) do (set /p Zeile=<"%%~i"  
	set Name="%%~i"  
	setlocal enabledelayedexpansion
	copy !Name! "!1stOrdner!\!Zeile!!1stExt!"  
	copy !Name! "!1stOrdner!\!Zeile!!2ndExt!"  
	del !Name!
	endlocal
)
popD

Edit 2. Ordner entfernt /Edit
[Edit2]Batch Korrigiert - Ein Anführungszeichen entfernt[/Edit2]
Gruß Phil
bastla
bastla 07.08.2010 um 11:11:56 Uhr
Goto Top
@ph
Eigentlich ist die Schleife für eine einzelne Datei etwas überdimensioniert - so würde es mE auch reichen:
@echo off & setlocal
set Datei="C:\Temp\Test.txt"  
set "Ziel=C:\Test"  
set "Ext1=.txt"  
set "Ext2=.csv"  
set /p Neu=<"%Datei%"  
copy "%Datei%" "%Ziel%\%Neu%%Ext1%">nul && move "%Datei%" "%Ziel%\%Neu%%Ext2%"  
Grüße
bastla
it-frosch
it-frosch 07.08.2010 um 14:42:27 Uhr
Goto Top
@bastla,

sehr effektives Script. Genau deshalb lese ich hier!

schönes WE
it-frosch
bastla
bastla 07.08.2010 um 15:26:59 Uhr
Goto Top
[OT]
@it-frosch
Danke für die Blumen, und schön, wenn Du etwas damit anfangen kannst ... face-smile

Grüße
bastla
[/OT]
viking
viking 07.08.2010 um 22:14:33 Uhr
Goto Top
Hallo bastla,

tut wie gewünscht!
Danke viking
viking
viking 07.08.2010 um 22:21:53 Uhr
Goto Top
Zitat von @pieh-ejdsch:
Moin viking,
hier als ausfühlicher Batch
setlocal
> set "Dateiordner=C:\Temp"  
> set Datei="Test.txt"  
> set "1stOrdner=C:\Test"  
> set "1stExt=.txt"  
> set "2ndExt=.csv"  
> pushD "%DateiOrdner%"  
> for %%i in (%Datei%) do (set /p "Zeile=<"%%~i"  
> 	set Name="%%~i"  
> 	setlocal enabledelayedexpansion
> 	copy !Name! "!1stOrdner!\!Zeile!!1stExt!"  
> 	copy !Name! "!1stOrdner!\!Zeile!!2ndExt!"  
> 	del !Name!
> 	endlocal
> )
> popD

Edit 2. Ordner entfernt /Edit
Gruß Phil

Hallo Phil,

Deine Version klappt bei mir nicht. Es öffnet sich eine Dosbox, ...
bastlas version funktioniert.

Daher ist meine Frage gelöst.
Trotzdem Danke auch an Dich.

Gruß viking.