2012-07-18 15 views
10

Tengo una lista de archivos zip con fecha y hora anexada como yyyymmdd_hhmmss_Demos.zip. Ahora, cómo obtener el archivo zip agregado más recientemente en el directorio de origen. Necesito copiar este archivo en el destino usando el comando copy.Cómo obtener el archivo más reciente utilizando un script por lotes en Windows

Encontré algo de información sobre archivos for, pero no tengo una idea de cómo hacerlo por segundos.

+1

posible duplicado de [¿Cómo escribo un script por lotes de Windows para copiar el archivo más reciente de un directorio?] (Http://stackoverflow.com/questions/97371/how-do-i-write-a-windows-batch-script-to-copy-the-newest-file-from-a-directory) No está claro si desea el archivo modificado más recientemente, el archivo agregado más recientemente al directorio, o el archivo con el más alto aaaammdd_hhmmss. –

Respuesta

19

Puede utilizar

pushd D:\a 
for /f "tokens=*" %%a in ('dir /b /od') do set newest=%%a 
copy "%newest%" D:\b 
popd 
+0

en aras de la simplicidad simplemente puse un conjunto de archivos de texto en una carpeta ay hice un destino como carpeta b y por lo tanto escribí este comando para/f "tokens = *" %% a in ('dir D: \ a/b/od ') establecer el más nuevo = %% a copiar "% más nuevo%" D: \ b Pero esto no funciona para mí ... qué está mal – azzaxp

+0

@azzaxp Prueba mi respuesta actualizada. Parece que el directorio fue el problema por alguna razón, no estoy seguro por qué. –

+0

'dir/b/od' listará también subdirectorios, si hay alguno. Creo que debería excluirlos utilizando el modificador '/ a-d' (a menos que, por supuesto, OP quiera copiar los subdirectores también) – wmz

0
pushd \\ryap\CONTROL_DATOS 
for /f "tokens=*" %%a in ('dir \\ryap\CONTROL_DATOS /b /od') do set newest=%%a 
Xcopy/Y "\\ryap\CONTROL_DATOS\%newest%" "D:\TXT_SOURCES\" 
popd 
+1

Pegar un código sin explicar lo que hace no es tan útil. ¿Puedes agregar una descripción? – SaeX

Cuestiones relacionadas