2012-07-18 24 views
10

Ho un elenco di file zip con data e ora aggiunti come yyyymmdd_hhmmss_Demos.zip. Ora come ottenere il file zip aggiunto più di recente nella directory di origine. Ho bisogno di copiare questo file nella destinazione usando il comando copy.Come ottenere il file più recente utilizzando uno script batch in windows

Ho trovato alcune informazioni sui file forfile, ma non ho un'idea su come ottenerlo per secondi.

+1

possibile duplicato di [Come faccio a scrivere uno script batch di Windows per copiare il file più recente da una directory?] (Http://stackoverflow.com/questions/97371/how-do-i-write-a-windows-batch-script-to-copy-the-newest-file-from-a-directory) Non è chiaro se si desidera il file modificato più di recente, il file aggiunto più di recente alla directory, o il file con il più alto yyyymmdd_hhmmss. –

risposta

19

È possibile utilizzare

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

per semplicità ho appena messo un set di file di testo in una cartella a e reso destinazione come cartella b e quindi ho scritto questo comando per/f "token = *" %% a in ('dir D: \ a/b/od ') set newest = %% a copia "% newest%" D: \ b Ma questo non funziona per me .. cosa c'è di sbagliato – azzaxp

+0

@azzaxp Prova la mia risposta aggiornata. Sembra che la directory fosse il problema per qualche motivo, non sono sicuro del perché. –

+0

'dir/b/od' elencherà anche i sottodiretti, se presenti. Penso che dovresti escluderli usando l'opzione '/ a-d' (a meno che OP non voglia copiare anche i sottodirectory) – 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

Incollare del codice senza spiegare che cosa fa non è così utile. Puoi aggiungere una descrizione? – SaeX

Problemi correlati