CMD/BAT - [решено] Скрипт, для копирования, форматирования, извлечения flash

Ответить
Аватара пользователя
Disobedient

CMD/BAT - [решено] Скрипт, для копирования, форматирования, извлечения flash

Сообщение Disobedient »

Доброго всем дня.



Такая вот задача.

Человек подключает флешку (SD 64 гига), с одной папкой и кучей мелких файлов внутри (видео).

Надо чтоб при запуске батника:

1. Создавалася папка с датой на HDD.

2. Содержимое флешки копировалось на HDD в эту папку с сегодняшней датой.

3. Флешка форматируется.

4. Извлекается устройство по завершении процедуры. Автоматически.

5. Если дата папки превышает 7 дней, то она удаляется без корзины.



Можно ли такое сотворить скриптами?
Аватара пользователя
Iska

Re: CMD/BAT - [решено] Скрипт, для копирования, форматирования, извлечения flash

Сообщение Iska »

Цитата Disobedient:



Можно ли такое сотворить скриптами?
CMD/BAT - [решено] Скрипт, для копирования, форматирования, извлечения flash




1. Съёмное устройство будет всегда одно и тоже, или могут быть разные?

2. «Если дата папки превышает 7 дней…» — о какой папке здесь идёт речь?

3.
Цитата Disobedient:



Извлекается устройство по завершении процедуры. Автоматически.
CMD/BAT - [решено] Скрипт, для копирования, форматирования, извлечения flash




Без сторонних средств, скриптом, в общем случае, не выйдет сего сделать. Вы готовы к этому?
Аватара пользователя
Disobedient

Re: CMD/BAT - [решено] Скрипт, для копирования, форматирования, извлечения flash

Сообщение Disobedient »

1) 2 флешки, но через один картридер, т.е. буква будет одна.

2) Каждый день новая папка с датой будет создаваться, надо чтоб она хранилась 7 дней. Потом удалялась. Всё сложно потому, что люди будут сидеть далёкие от копирования/удаления файлов. Кстати копироваться будут файлы с видеорегистратора.

3) Извлекать устройство, ну по возможности чем нибудь простым, в идеале "нажатием 1 кнопкой"
Аватара пользователя
Disobedient

Re: CMD/BAT - [решено] Скрипт, для копирования, форматирования, извлечения flash

Сообщение Disobedient »

С созданием папки всё понятно



@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

Re: CMD/BAT - [решено] Скрипт, для копирования, форматирования, извлечения flash

Сообщение Disobedient »

@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 можно скачать в нете и положить в корень флешки.

(флеха будет автоматом извлекаться)
Ответить

Вернуться в «Скриптовые языки администрирования Windows»