Batch Älteste Datei aus einem Verzeichnis kopieren

Albeck

Ensign
Registriert
Nov. 2008
Beiträge
241
Hallo CBler,

Ich möchte ein Verzeichnis überprüfen und falls *.p* Dateien vorhanden sind soll die älteste Datei aus dem Verzeichnis in ein neues Verzeichnis kopiert werden

Hier mal der Code:
Code:
echo=on

pause
set pruefung="C:\Dokumente und Einstellungen\Florian\Desktop\pruefung"

if exist %pruefung%\10x16\*.p* (FOR /F %%F IN ('DIR /B /A-D /O-D /TW %pruefung%\10x16\*.*') DO (SET AKTJOB=%%F)) 

echo %AKTJOB%




mkdir "c:\Dokumente und Einstellungen\Florian\Desktop\tempo\10x16"

xcopy %AKTJOB% "c:\Dokumente und Einstellungen\Florian\Desktop\tempo\10x16"


else echo nix da


pause

Und hier mein bisheriges "Ergebnis"
fehlert.jpg


Wo liegt der Fehler oder geht das ganze auch noch anders?

Edit: Das Problem ist auch, dass nach einem if zuerst mehrere Befehle abgearbeitet werden sollen bevor dann erst das else kommt. Wie ist das zu realisieren?
 
Zuletzt bearbeitet:
Kann man unter DOS bzw. CMD Schleifen nutzen ?
Wäre mir neu, kenne sowas nur von Linux.
 
hm also ich habs mal umgeschrieben aber irgendwo ist aj noch der fehler dirn. er soll ja nur der ältesten datei die variable aktjob zuordnen und nicht allen dateien im verzeichnis. und zweitens soll xcopy ja dann nur die datei für die die varibla gestezt ist eben durch die variable in ein anderes verzeichniskopieren. bisher werden aber obwohl leider für alle dateien die variable gesetzt wird überhaupt keine datei kopiert. das kann ja irgendwie auch nicht sein....
hilfe :rolleyes:

hier mal der neue code:
Code:
echo=on

pause
set pruefung="C:\Dokumente und Einstellungen\Florian\Desktop\pruefung"

if exist %pruefung%\10x16\*.p* (
	FOR /F %%F IN ('DIR /B /A-D /O-D /TW %pruefung%\10x16\*.*') DO (SET AKTJOB=%%F)
	echo %AKTJOB%
	mkdir "c:\Dokumente und Einstellungen\Florian\Desktop\tempo\10x16"
	xcopy %AKTJOB% "c:\Dokumente und Einstellungen\Florian\Desktop\tempo\10x16"
) else (
	echo nix da
)



pause
pause


und das kommt dabei heraus:
fehler2.jpg

ich hoffe jemand kann mir weiterhelfen,
mfg albeck




SO ES IST GELÖST:

echo=on
SETLOCAL ENABLEDELAYEDEXPANSION



pause
set pruefung="C:\Dokumente und Einstellungen\Florian\Desktop\pruefung"

if exist %pruefung%\10x16\*.p* (
FOR /F %%F IN ('DIR /B /A-D /O-D /TW %pruefung%\10x16\*.*') DO (SET AKTJOB=%%F)
echo !AKTJOB!
mkdir "c:\Dokumente und Einstellungen\Florian\Desktop\tempo\10x16"
xcopy "C:\Dokumente und Einstellungen\Florian\Desktop\pruefung\10x16\!AKTJOB!" "c:\Dokumente und Einstellungen\Florian\Desktop\tempo\10x16"
) else (
echo nix da
)



pause
pause

so geht es, hba ein bisschen gehadert ne variable in einer for-schleife in einem if auszulesen, aber so geht es ;)
 
Zuletzt bearbeitet: (Lösung)
Zurück
Oben