Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Копирование с флешки в папку на компьютере файлов с текущей датой

Ответить
Настройки темы
CMD/BAT - [решено] Копирование с флешки в папку на компьютере файлов с текущей датой

Новый участник


Сообщения: 14
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Добрый день.
Задача такая: копировать файлы *.jpg с флешки на компьютер. Причём копировать только файлы за текущую дату.
Код такой:
Код: Выделить весь код
@echo off
SetLocal EnableExtensions

set Src=F:\DCIM\100SSCAM
set Dst=Z:\Фото\май2010

cd /d %Dst%
for /F "tokens=1-4 usebackq delims=. " %%1 in (`date /t`) do set fld=%%4.%%3.%%2
md %fld%
for %~ti in *.jpg do xcopy %Src%\*.jpg %Dst%\%fld%\  /e /c /h /y 
exit
Папка текущей датой создаётся, но вот файлы не копируются.. Подскажите где ошибка. Понимаю, что в for... но вот где...

Отправлено: 17:20, 18-05-2010

 

Старожил


Сообщения: 426
Благодарности: 108

Профиль | Отправить PM | Цитировать


хм... у меня даже каталог правильно не создался... (число пропало)

попробуйте вот так, единственное не начем было опробовать конечный вариант.
(глючок: копироваться будут не только "сегодняшние" фотки, но и завтрашние и послезавтрашние, т.е. все, не старее указанной даты)

Код: Выделить весь код
@echo off
set Src=F:\DCIM\100SSCAM
set Dst=Z:\Фото\май2010

set dt=%date:~6,4%-%date:~3,2%-%date:~0,2%
set cdt=%dt:~5,5%-%dt:~0,4%
md %Dst%\%dt%
xcopy /D:%cdt% /-Y %Src%\*.jpg %Dst%\%dt%\

-------
Как сказало Дерево Дровосеку: "я - пень".

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:53, 18-05-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Contributor


Сообщения: 2708
Благодарности: 1684

Профиль | Отправить PM | Цитировать


Вот еще вариант
Код: Выделить весь код
Echo Off

Set Otkuda=F:\DCIM\100SSCAM\*.jpg
Set Kuda=Z:\Фото\май2010\

Set Dt=%Date%
Set Kuda=%Kuda%%Dt:~6,4%%Dt:~3,2%%Dt:~0,2%\
md "%Kuda%"

FOR %%i IN ("%Otkuda%") DO Call :CopyData "%%i" %%~ti
GoTo :EOF

:CopyData
If %Dt%==%2 Copy "%~f1" "%Kuda%" >nul
Если вместо строки
Set Dt=%Date%
Указать конкретную дату в формате дд.мм.гггг, например,
Set Dt=13.05.2010
То можно копировать за конкретно указанный день
На мой взгляд, чтобы не писать май2010 в батнике, лучше создавать директорию для года, внутри директории для месяцев, и внутри каждого месяца директории для конкретного дня, соответственно в нужных местах изменив строки

Set Kuda=Z:\Фото\

Set Kuda=%Kuda%\%Dt:~6,4%\%Dt:~6,4%%Dt:~3,2%\%Dt:~6,4%%Dt:~3,2%%Dt:~0,2%\

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 18-05-2010 в 20:17. Причина: Дополнение

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:16, 18-05-2010 | #3


Новый участник


Сообщения: 14
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


хмм... папка создаётся такого вида: 05.2-18-Вт
а файлы копируются если если у /D убрать %cdt%
естественно копирутся все...

-------
erazina.ru - Свадебная фотография


Отправлено: 20:08, 18-05-2010 | #4


Ветеран


Contributor


Сообщения: 2708
Благодарности: 1684

Профиль | Отправить PM | Цитировать


bazik83, А у Вас какая операционная система? В каком формате у Вас выдаётся дата?

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Отправлено: 20:16, 18-05-2010 | #5


Новый участник


Сообщения: 14
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


win2000 sp4
Краткий: dd.MM.yyyy
Полный: dd MMMM yyyy 'г.'

нда.. на XP оба скрипта отрабатывают на отлично. Будем копать дальше.

Как показали опыты для создания папки нужна была такая строка:
Код: Выделить весь код
 set dt=%date:~9,4%-%date:~6,2%-%date:~3,2%
Всем спасибо.

Готовый скрипт пока такой:
Код: Выделить весь код
@echo off
set Src=F:\DCIM\100SSCAM
set Dst=Z:\Фото\май2010

set dt=%date:~9,4%-%date:~6,2%-%date:~3,2%
set cdt=%dt:~5,5%-%dt:~0,4%
md %Dst%\%dt%\Уменьшенные
xcopy /D:%cdt% /-Y /e /c /h %Src%\*.jpg %Dst%\%dt%\
start "" "%ProgramFiles%\IrfanView\i_view32.exe" %Dst%\%dt%\*.jpg /jpgq=30 /convert=%Dst%\%dt%\Уменьшенные\*.jpg

-------
erazina.ru - Свадебная фотография


Последний раз редактировалось bazik83, 19-05-2010 в 03:43. Причина: дополнение


Отправлено: 20:23, 18-05-2010 | #6


Ветеран


Contributor


Сообщения: 2708
Благодарности: 1684

Профиль | Отправить PM | Цитировать


Если в моём скрипте к строчке

Set Dt=%Date%

Добавить

Set Dt=%Date%
if Not "%Dt:~2,1%"=="." Set Dt=%Dt:~3,6%%Dt:~11,2%

то у меня работает и в Windows XP и в 2000

Но при этом моё примечание
Цитата:
Если вместо строки
Set Dt=%Date%
Указать конкретную дату в формате дд.мм.гггг, например,
Set Dt=13.05.2010
для Windows 2000 имеет вид
Set Dt=13.05.10

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 10:17, 19-05-2010 | #7



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Копирование с флешки в папку на компьютере файлов с текущей датой

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Прочие - автоматическое копирование данных с флешки chek Программное обеспечение Windows 2 22-06-2011 18:20
CMD/BAT - [решено] Проверить наличие файла с текущей датой. OlegStarov Скриптовые языки администрирования Windows 4 21-04-2009 12:11
VBS/WSH/JS - [решено] Удаление файлов созданных ранее текущей даты на неделю KillHunter Скриптовые языки администрирования Windows 5 06-03-2009 12:23
MSFT SQL Server - [решено] Резервное копирование с датой в MSSQL2005 dim_alf Программирование и базы данных 4 14-09-2008 09:58
CMD/BAT - +VBS: копирование файлов с сервера в папку установки проги la_vanille_ciel Скриптовые языки администрирования Windows 27 09-04-2008 11:53




 
Переход