Batch Datei mit bestimmter Endung suchen und den Namen davor auslesen
Hallo
Ich versuche ein Skript zu schreiben, dass mir Dateien von einem Bestimmten Typ in einen bestimmten Ordner kopiert. Ich habe dabei an so etwas gedacht:
jpg.cfg
png.cfg
ico.cfg
etc.
Inhalt: \Bilder
Nun soll das Programm den Namen vor der Endung auslesen (z.B. ico oder jpg) und diese Typen nun in den Ordner verschieben, dessen Name in der Datei steht verschieben.
Wie kann ich nun den Vornamen der Datei und den zugehörigen Inhalt auslesen?
2 Antworten

For is richtig ;)
@echo off
FOR %%q in (*.txt) do move V:\Testie\%%q V:\Testie\Ordner2\%%q
cmd /k
In dem Ordner indem die Textdateien liegen muss in diesem Fall auch die Batch liegen. Falls du die in einen andern Ordner stopfen willst musst du das so machen:
FOR %%q in (c:\test\lala\*.txt)
Das ganze funktioniert natürlich auch mit jeder anderen Dateiendung. Bei dem move Befehl ist der erste Pfad der Pfad indem die Textdateien noch() liegen und der zweite Pfad der Ordner inden verschoben wird.
In der Variable %%q stehen die ganzen Dateinamen, wenn du dir das also vor Augen führen willst machst einfach
echo %%q
;)

auch erst seit kurzem ^^
Schau mal hier: http://www.antonis.de/dos/batchtut/bat-kurs/#12
Ich raffs auch erst seit diesem Tutorial :)
In Kurzfassung: Alle Werte werden in die Variable %%i zum Beispiel je nach dem eingelesen also quasi wie ein Array
Du movest dann alle dateien aus der Variable %%i und willst sie ja nich umbenennen sondern sie sollen ihren Namen behalten also pastest du sie auch wieder mit dem selben Dateinamen also eben wieder %%i
Villeicht bist der For-Schleife nu etwas näher ;p Die is eigentlich echt am praktischsten :)

Such nach dem FOR Befehl....

Ich weiss nicht ob man damit den Dateinamen herausfinden kann
Vielen Dank! Ich hab das mit dem FOR Befehl noch nicht ganz raus:)