Войти

Показать полную графическую версию : [решено] Копирование самого позднего по дате создания каталога.


SANIOK_AV
03-12-2009, 17:58
Докрого времени суток!
Ситуация такая:
Есть к примеру каталог C:\1\
В нём есть несколько подкаталогов...
Нужно из каталога C:\1\ скопировать в каталог C:\2\ подкаталог, который самый свежий по дате создания...
Подскажите пожалуйста как это можно реализовать?
Заранее благодарен!!!

NiOl
03-12-2009, 18:54
@Echo off
SetLocal EnableExtensions

Set Src=C:\TEMP\1\
Set Dst=C:\TEMP\2\
if not %Src:~-1%==\ set Src=%Src%\

PushD %Src%
for /f "delims=" %%D in ('DIR *.* /B /AD /OD') do set D=%%D
PopD

PushD %Dst%
md %D%
cd %D%
rem Ключи /C /G /K могут быть лишними. (см XCopy /?)
xcopy %Src%%D% /E /H /R /Y /C /G /K
if ErrorLevel 1 Echo Не удалось скопировать %Src%%D% в %Dst% !!!
PopD

SANIOK_AV
04-12-2009, 17:29
NiOl, Спасибо огромное!
Работает!
И ещё просьба:
Обьясните пожалуйста как работает в данном случае for
Вот на другом форуме мне тоже превели пример по этому поводу:
for /f %%i in ('dir "c:\1\" /o:-d /t:c /b') do xcopy /e /f /i /y "c:\1\%%i" "c:\2\%%i"
и не смотря на то что в Вашем примере в dir ключик "/OD" (то есть сортировка в обратном порядке) и тот и тот вариант работает...




© OSzone.net 2001-2012