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

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

Ответить
Настройки темы
CMD/BAT - [решено] распаковка архивов по нужным папкам

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


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

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


Добрый день, форумчане.
Никогда не писал батники, но вот на работе возникла необходимость.
Суть: есть zip архивы вида хх_хххх_[N] и есть папки на сетевом диске вида [N]-[название].
где хх - числа(иногда первая буква, а вторая цифра), хххх - цифры, [N] - номер вида 01,02 ... 43 , который соответствует начальному названию папки на сетевом диске; [название] - название папки.

Необходимо, чтобы архивы разархивировались в соответствующие папки на сетевом диске( хх_ххх_01.zip разархивировался в 01-[название]).

Зарание спасибо за помощь!

Отправлено: 08:39, 12-09-2012

 

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


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

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


Bob256, пишет :

archive c:\d2_0912_02.zip
Файл не найден

почему он ищет в корне С, если указан путь в папку с:\2\ ?
но такой архив в папке d:\2\ сущетсвует...

Отправлено: 12:02, 13-09-2012 | #11



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

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


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


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

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


Цитата muguch:
но такой архив в папке d:\2\ сущетсвует... »
где искать будем?
Код: Выделить весь код
set src=D:\2\
куда положим?
Код: Выделить весь код
set dst=D:\2\

Отправлено: 12:15, 13-09-2012 | #12


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


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

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


положил батник в папку где лежат архивы d:\2\
после запуска пишет:
archive D:\2\d2_0912_02.zip
not exist D:\2\02-*

Отправлено: 12:23, 13-09-2012 | #13


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


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

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


А папка D:\2\02-* есть?
Цитата muguch:
Суть: есть zip архивы вида хх_хххх_[N] и есть папки на сетевом диске вида [N]-[название]. »

Отправлено: 13:09, 13-09-2012 | #14


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


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

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


Bob256, по такому пути нет
они находяться в папке С:\2\
Цитата Bob256:
Цитата muguch: Суть: есть zip архивы вида хх_хххх_[N] и есть папки на сетевом диске вида [N]-[название]. » »
все правильно, просто архивы не находятся в одной и тойже директории, что папки

Отправлено: 13:49, 13-09-2012 | #15


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


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

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


Код: Выделить весь код
set src=D:\2\
set dst=C:\2\

Отправлено: 14:21, 13-09-2012 | #16


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


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

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


Bob256, и так делал
пишет:
Цитата muguch:
archive c:\d2_0912_02.zip
Файл не найден »

Отправлено: 14:33, 13-09-2012 | #17


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


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

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


Пропустил
Код: Выделить весь код
@echo off
set src=D:\2\
set dst=C:\2\
if not exist "%src%??_????_*.zip" (echo not exist  %src%??_????_*.zip) else (
  for /f "tokens=1,2,3,4 delims=_." %%I in ('dir /b "%src%??_????_*.zip"') do (
    echo archive  %%~dpnI_%%J_%%K.%%L
    if not exist "%dst%%%K-*" (echo not exist %%~dpnK-*) else (
      for /f "tokens=1,2 delims=-" %%M in ('dir /b "%dst%%%K-*"') do (
        echo extract to  %%~dpnM-%%N
        "%ProgramFiles%\7-Zip\7z.exe" x "%%~dpnI_%%J_%%K.%%L" -oc:"%%~dpnM-%%N"
      )
    )
  )
)

Отправлено: 14:55, 13-09-2012 | #18


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


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

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


все равно почему то ищет архив в папке С:\2\

Error:
cannot find archive
archive c:\2\d2_0912_02.zip
extract to c:\2\02-*

7-Zip 4.65 Copyright (c) 1999-2009 Igor Pavlov 2009-02-03

Отправлено: 15:14, 13-09-2012 | #19


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


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

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


Код: Выделить весь код
@echo off
set src=D:\2\
set dst=C:\2\
if not exist "%src%??_????_*.zip" (echo not exist  %src%??_????_*.zip) else (
  for /f "tokens=1,2,3,4 delims=_." %%I in ('dir /b "%src%??_????_*.zip"') do (
    echo archive  %src%%%I_%%J_%%K.%%L
    if not exist "%dst%%%K-*" (echo not exist %dst%%%K-*) else (
      for /f "tokens=1,2 delims=-" %%M in ('dir /b "%dst%%%K-*"') do (
        echo extract to  %dst%%%M-%%N
        "%ProgramFiles%\7-Zip\7z.exe" x "%src%%%I_%%J_%%K.%%L" -oc:"%dst%%%M-%%N"
      )
    )
  )
)
и без лишних сообщений
Код: Выделить весь код
@echo off
set src=D:\2\
set dst=C:\2\
for /f "tokens=1,2,3,4 delims=_." %%I in ('dir /b "%src%??_????_*.zip"') do for /f "tokens=1,2 delims=-" %%M in ('dir /b "%dst%%%K-*"') do "%ProgramFiles%\7-Zip\7z.exe" x "%src%%%I_%%J_%%K.%%L" -oc:"%dst%%%M-%%N"

Отправлено: 15:42, 13-09-2012 | #20



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Распаковка большого количества zip (пакетная распаковка zip из разных папок) dark-------13 Скриптовые языки администрирования Windows 3 12-03-2013 13:00
System/Проект - Доступ к 3 папкам или как ограничить не нужным Rezor666 Сетевые технологии 10 09-06-2012 13:42
Разное - РАСПАКОВКА АРХИВОВ MZ (ОПК 3.19) Vamp1re Тест-форум 0 13-12-2010 15:03
Доступ - как зайти на сервер под нужным мне пользователем Rognorek Microsoft Windows 2000/XP 5 27-07-2007 09:08
распаковка больших архивов greeka Общий по FreeBSD 7 19-07-2004 09:21




 
Переход