2013-05-17 3 views
0

Я хочу создать файл bat, который копирует все файлы изображений jpeg, созданные в определенную дату - например, 2013/05/05.Поиск файлов в каталоге по DATE с помощью cmd

Он будет идти что-то вроде этого:

xcopy g:\DCIM\images\'command for date'*.jpg c:\users\david\images\newImages 

Как добиться этого?

Я попытался следующие, но копируются все изображения в папке и игнорировать дату параметров:

xcopy /l /s /d:05-05-2013 g:\DCIM\images\*.jpg c:\users\david\images\newImages 

ответ

1

Попробуйте это:

@echo off 
setlocal 

for /f "tokens=1,5 delims= " %%a in ('dir /a-d /tc G:\DCIM\images\*.jpg') do (
    if %%a equ 2013/05/05 copy "g:\DCIM\images\%%b" "c:\users\david\images\newImages" 
) 
+0

спасибо , но, похоже, не работает – DextrousDave

+0

Возможно, вы можете проверить код? – DextrousDave

+1

Является ли ваш формат даты yyyy/dd/mm тем, как вы его разместили? введите 'DIR' в командной строке' CMD' и посмотрите, какой формат даты. Измените дату на любой формат, в котором он находится. Я не отправляю код, если я его не тестировал. Он отлично работает в моей системе. Я немного уточнил это на случай, если вы не запустили командный файл из каталога G: \ dcim \ images. –

0

попробовать это:

@echo off&setlocal 
cd /d "g:\DCIM\images" 
for /f "tokens=3" %%i in ('dir ^|findstr "^[0-9]"') do set "AMPM=%%i" 
if "%AMPM:M=%"=="%AMPM%" (set "AMPM=3") else set "AMPM=4" 
for /f "tokens=1,%AMPM%*" %%i in ('dir /a-d /tc *.jpg') do if "05-05-2013"=="%%i" echo copy "%%k" "c:\users\david\images\newImages" 
+0

спасибо ... но не работает ... Не существует более простого способа сделать это - см. Мой обновленный ответ – DextrousDave

+0

Имо вы указали неверный формат даты. Сначала вы должны предоставить образец вывода из вашей команды «dir». – Endoro

+0

не уверен, какой формат должен быть тогда ... так как я использовал указанный формат xcopy ... который есть/D: m-d-y – DextrousDave

Смежные вопросы