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

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

Ответить
Настройки темы
CMD/BAT - [решено] копировать с CD файлы *.rar на жёсткий диск в одну и ту же папку (ММ.ДД-ДД)

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


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

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


По роду деятельности приходится постоянно копировать с CD файлы *.rar на жёсткий диск в одну и ту же папку.
Сложность в том, что на CD постоянно меняется имя папки (в формате ММ.ДД-ДД), а именно:
E:\t3000\08.27-02\*.rar
E:\t3000\08.20-26\*.rar
E:\t3000\08.13-19\*.rar и т.д и т.п.
Можно ли это как-то преодолеть, ибо батник значительно облегчил бы жизнь......
Был бы рад конкретному решению, если это в принципе возможно......

Отправлено: 11:34, 05-09-2007

 

Аватара для ShaddyR

Железных Дел Мастер


Moderator


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

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


можно.. отчего ж нельзя?
Примем константой имя CD - например, Е:
Тогда:
!run.bat
Код: Выделить весь код
@echo off
cls
set cdd=e:
for /f  "usebackq delims=="   %%i in (`"dir "%cdd%" /ad /b"`) do call work.bat "%%i"
echo Ok
pause
work.bat
Код: Выделить весь код
@echo off
set CDD=E:
set BAK_DIR=D:\back\CD
IF EXIST "%cdd%\%1"\*.rar goto work
echo Skipped: %1
goto exit
:work
echo --} Processing folder "%1"
MD %BAK_DIR%\%1
xcopy "%cdd%\%1"\*.rar  "%BAK_DIR%\%1"\*.rar /q /h
echo {-- Ready: "%1"

:exit
Общий смысл какой: берется список папок с диска Е:, делается перебор их. В процессе перебора в папке, указанной в переменной BAK_DIR создается папка с тем же именем, что и на диске и копируются все файлы с расширением .rar. Папки, не содержащие в корне ни одного rar-a пропускаются. На экран выводится отчет - какие папки обработаны, какие пропущены и сколько файлов скопировано.
Если изменить команду копирования следующим образом, копироваться будут файлы, находящиеся во вложенных папках (при условии, что в корневой был хоть один rar):
xcopy "%cdd%\%1"\*.exe "%BAK_DIR%\%1"\*.exe /q /h /e

-------
[FAQ] Как определить аппаратную конфигурацию компьютера и правильно задать вопрос
-------
В благодарность за помощь нажимаем ссылочку "Полезное сообщение" внизу этого самого сообщения (подробнее). Помните: админ конфеты НЕ ПЬЁТ ;)
-------
Говори, что думаешь и думай, что говоришь! (c) || МОЙ ShaddyR.at.UA/blog - Новая метла и инвентаризация)

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

Отправлено: 13:27, 05-09-2007 | #2



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

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


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


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

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


Спасибо за практический совет (редкость в наше время). Обязательно попробую и завтра напишу, что получилось!

Отправлено: 16:41, 05-09-2007 | #3


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


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

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


Попробовал, батники работают наполовину: ищет только в первых папках, а надо во вложенных.
Посему уточняю:

Папки ВСЕГДА лежат ВНУТРИ каталога E:\t3000 ,например:
E:\t3000\08.27-02\*.rar
E:\t3000\09.01-21\*.rar
Все файлы *.rar надо ОДНОЙ кучей сложить РОССЫПЬЮ (без подпапок) в С:\Storage\Archive\*.rar

Чувствую, что это можно заставить работать в моём конкретном случае (после доработки). Только как?

Отправлено: 19:07, 05-09-2007 | #4


Ветеран


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

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


это можно вообще одной командой:
Код: Выделить весь код
for /D %i in (E:\t3000\*) do copy %i\*.rar С:\Storage\Archive\
хотя вместо copy лучше использовать xcopy с ключом /D чтобы одни и те же файлы поверх не переписывал
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:48, 06-09-2007 | #5


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


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

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


Спасибо Busla !!!! После исправления незначительных ошибок окончательный рабочий вариант выглядит так:

for /D %%i in (E:\t3000\*) do copy %%i\*.rar С:\Storage\Archive\


Всем огромное спасибо!!!!!

Отправлено: 15:12, 06-09-2007 | #6


Аватара для Coutty

Кот Ти


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

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


(А вообще - так ли надо это автоматизировать? Может быть просто сделать поиск по *.rar и скопировать все файлы толпой?)

Отправлено: 16:09, 06-09-2007 | #7


Аватара для ShaddyR

Железных Дел Мастер


Moderator


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

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


PupsIC, ю а велкам. (с) Timsky

Отправлено: 20:19, 06-09-2007 | #8


Ветеран


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

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


Цитата PupsIC:
После исправления незначительных ошибок »
это не незначительная ошибка, а немножко разный синтаксис для непосредственного запуска из командной строки и командного файла - чтобы параметры файла не путались с параметром for.

Отправлено: 17:10, 08-09-2007 | #9



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Одну папку надо скопировать во много других Itexz Скриптовые языки администрирования Windows 5 03-11-2009 10:57
Разное - [решено] не повредит ли системе констменю "Копировать в папку" и "Переместить в папку"? celentanoman Microsoft Windows 2000/XP 7 28-10-2009 03:53
VBS/WSH/JS - [решено] можно ли копировать файлы с локальных компов без использования сетевого диска foxbat Скриптовые языки администрирования Windows 8 07-04-2009 07:28
Доступ - Запрещено копировать файлы exe с внешних дисков и сети на локальный диск ПК SLX Microsoft Windows 2000/XP 1 24-07-2008 19:23
Проблема с записью данных на диск в NTFS. Reget не скачивает файлы в папку Lexus23 Microsoft Windows 2000/XP 13 26-02-2007 17:12




 
Переход