2016-04-15 5 views
-2

Hallo ich möchte Dateien mit den neuesten Dateinamen verschieben.Wie verschiebt man den letzten Dateinamen nach Datum in einen anderen Ordner mit .BAT?

Wir haben Dateien, die jede Nacht erstellt werden.

Dateinamen sind wie folgt aus:

KOHe5_20160410.txt 
LU5_20160410.txt 
MOHe5_20160410.txt 

und ich möchte nur diejenigen bewegen, die in dieser Nacht erstellt werden.

habe ich diesen Code zuerst:

robocopy C:\SOURCE C:\OUTPUT KOHe5_*.txt /MOV /S /MAXAGE:1 

robocopy C:\SOURCE C:\OUTPUT LU5_*.txt /MOV /S /MAXAGE:1 

robocopy C:\SOURCE C:\OUTPUT MOHe5_*.txt /MOV /S /MAXAGE:1 

Aber das ist das Erstellungsdatum auf Akte. Ich möchte das Datum auf den Dateinamen nehmen und das Neueste nehmen.

Irgendeine Idee wie?

+0

Sind Sie mit gleichgeschlechtlicher Datum oder Datum vorher? Der Befehl 'date/t' im Batch gibt Ihnen das aktuelle Datum als String. Sie könnten das auf eine Variable "SET" setzen und String-Slicing verwenden, um es im JJJJMMTT-Format zu erhalten. –

+0

Aber es ist nicht Datum-bewusst. Sie haben keine Möglichkeit zu tun, date/t -minus 1d' oder etc –

+0

ok so wie würde ich das tun? Können Sie bitte den vollständigen Code angeben? Ich muss nur die neueste Datei basierend auf dem Datum im Dateinamen in einen anderen Ordner verschieben, sonst nichts – Vargo

Antwort

2

dies, wie Sie die nach Namen sortiert Dateien erhalten und wählen Sie das letzte:

cd /d c:\source 
for /f "tokens=*" %%i in ('dir /b /on KOHe5_*.txt') do set last=%%i 

Sie dann kopieren, xcopy, robocopy oder was auch immer %last%:

copy %last% c:\destination\* 
+0

Vielen Dank für die Antwort, können Sie bitte den vollständigen Code als im komplett neu zu diesem. – Vargo

+0

ok thx wird das jetzt versuchen – Vargo

+0

ok es hat geklappt !! Wie kann ich nur die Datei verschieben und nicht kopieren? – Vargo

Verwandte Themen