Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Помогите написать батник, копирующий файлы по дате изменения (http://forum.oszone.net/showthread.php?t=285432)

kirillius 22-07-2014 14:01 2379719

Помогите написать батник, копирующий файлы по дате изменения
 
Здравствуйте.
Ситуация следующая: надо в сетевой папке с огромной кучей файлов найти самый свежий по дате изменения и содержащий в названии определённые слова (на русском) и скопировать его в другую сетевую папку. Формат файлов - xls или xlsx. Названия файлов должны содержать слова "детских", "субсидий" (т. е. копировать надо будет два разных файла).
Помогите в написании, пожалуйста.

megaloman 22-07-2014 15:49 2379761

Код:

@Echo Off
rem Сохранить в 866 (Dos) кодировке если есть русские буквы

Set "In=F:\EXCEL"
Set "Out=E:\Delete"

Call :CopyMask "%In%","%Out%","*кассир*.xl*"
Call :CopyMask "%In%","%Out%","*Форма*.xl*"

GoTo :Eof

:CopyMask

FOR /F "usebackq delims=" %%f IN (`Dir "%~1\%~3" /B /A:-D /O:-D 2^>nul`) DO (
        Copy "%~1\%%f" "%~2\" >nul
        GoTo :Eof
)


kirillius 22-07-2014 16:32 2379782

megaloman, спасибо большое! А что дописать, чтобы он в конце показывал, что сделал? PAUSE не работает почему-то, отрабатывает и закрывается...

megaloman 22-07-2014 17:13 2379803

Код:

@Echo Off
rem Сохранить в 866 (Dos) кодировке если есть русские буквы

cls

Set "In=F:\EXCEL"
Set "Out=E:\Delete"

Call :CopyMask "%In%","%Out%","*ссир*.xl*"
Call :CopyMask "%In%","%Out%","*Форма*.xl*"

Pause
GoTo :Eof

:CopyMask

FOR /F "usebackq delims=" %%f IN (`Dir "%~1\%~3" /B /A:-D /O:-D 2^>nul`) DO (
        Copy "%~1\%%f" "%~2\" >nul
        If Exist "%~2\%%f" (
                Echo Файл "%~1\%%f" скопирован в "%~2\"
        ) Else (
                Echo Файл "%~1\%%f" НЕ скопирован в "%~2\"
        )
        GoTo :Eof
)
Echo Нет файлов "%~1\%~3"


kirillius 22-07-2014 17:31 2379813

Благодарю!


Время: 09:57.

Время: 09:57.
© OSzone.net 2001-