Показать полную графическую версию : [решено] Скрипт, для копирования, форматирования, извлечения flash
Disobedient
08-11-2011, 16:41
Доброго всем дня.
Такая вот задача.
Человек подключает флешку (SD 64 гига), с одной папкой и кучей мелких файлов внутри (видео).
Надо чтоб при запуске батника:
1. Создавалася папка с датой на HDD.
2. Содержимое флешки копировалось на HDD в эту папку с сегодняшней датой.
3. Флешка форматируется.
4. Извлекается устройство по завершении процедуры. Автоматически.
5. Если дата папки превышает 7 дней, то она удаляется без корзины.
Можно ли такое сотворить скриптами?
Можно ли такое сотворить скриптами? »
1. Съёмное устройство будет всегда одно и тоже, или могут быть разные?
2. «Если дата папки превышает 7 дней…» — о какой папке здесь идёт речь?
3. Извлекается устройство по завершении процедуры. Автоматически. »
Без сторонних средств, скриптом, в общем случае, не выйдет сего сделать. Вы готовы к этому?
Disobedient
08-11-2011, 17:25
1) 2 флешки, но через один картридер, т.е. буква будет одна.
2) Каждый день новая папка с датой будет создаваться, надо чтоб она хранилась 7 дней. Потом удалялась. Всё сложно потому, что люди будут сидеть далёкие от копирования/удаления файлов. Кстати копироваться будут файлы с видеорегистратора.
3) Извлекать устройство, ну по возможности чем нибудь простым, в идеале "нажатием 1 кнопкой"
Disobedient
09-11-2011, 09:31
С созданием папки всё понятно
@echo off
for /f "tokens=1-3 delims=." %%i in ("%date%") do (mkdir "%~1\%%k-%%j-%%i")
а вот как настроить xcopy, чтоб писал именно в эту папку?
с форматированием всё понятно
Для извлечения пойдёт
RunDll32.exe shell32.dll,Control_RunDLL hotplug.dll
Disobedient
10-11-2011, 11:29
@echo off
SetLocal EnableDelayedExpansion
set SRC=W:Adr
set DST=G:634
call :FromNow -4
xcopy /q/y "%SRC%\*" "%DST%\%DATE:~,5%.%DATE:~-2%\"
for /d %%i in (%DST%\*) do (
set $i=%%~ni& set "$i=!$i:~-2!!$i:~3,2!!$i:~,2!"
if !$i! lss %yymmdd% rd /s/q "%%i"
)
Erase /S /Q W:\Adr
call USB_Disk_Eject.exe /REMOVETHIS /SHOWEJECT
:FromNow
SetLocal
Set yyyy=%DATE:~-4%& set /a mm=100%DATE:~3,2%%%100& set /a dd=100%DATE:~,2%%%100
Set /A JD=%~1+dd-32075+1461*(yyyy+4800+(mm-14)/12)/4+367*(mm-2-(mm-14)/12*12)/12-3*((yyyy+4900+(mm-14)/12)/100)/4
Set /A L=JD+68569,N=4*L/146097,L=L-(146097*N+3)/4,I=4000*(L+1)/1461001
Set /A L=L-1461*I/4+31,J=80*L/2447,K=L-2447*J/80,L=J/11
Set /A J=J+2-12*L,I=100*(N-49)+I+L
Set /A yyyy=I,mm=100+J,dd=100+K
EndLocal& Set yymmdd=%yyyy:~-2%%mm:~-2%%dd:~-2%
Exit /B
Программу USB_Disk_Eject.exe можно скачать в нете и положить в корень флешки.
(флеха будет автоматом извлекаться)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.