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

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

Ответить
Настройки темы
CMD/BAT - Переименование дубликатов файлов при распаковке из архивов в одну папку

Ветеран


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


Конфигурация

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


Изменения
Автор: truvo
Дата: 30-09-2010
Мне бы хотелось поиметь решение одной задачки:

Есть zip-архивы, в каждом из которых по несколько файлов, и в том числе файл readme.txt.

Все эти архивы распаковываются в одну большую папку (то есть все файлы из всех архивов сваливаются в кучу), с заменой более старых файлов (или всех файлов - это непринципиально). То есть архивы скачиваются из Интернета, и из них регулярно обновляется общая папка.

Необходимо, чтобы файл readme.txt из каждого архива распаковывался в эту общую папку под именем имя архива_readme.txt или можно ещё короче: имя архива.txt

То есть нужно, чтобы readme при этой тотальной распаковке не затирались друг другом и чтобы понятно было в то же время, к какому архиву относился прежде каждый readme.

Имена остальных файлов трогать не нужно, т. к. совпадающих имен больше нет.

Можно ли написать такую утилитку, или, может, найдется архиватор, который такое умеет?

Отправлено: 01:58, 29-09-2010

 

Аватара для Delirium

Ветеран


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

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


truvo, мне кажется, что с подобным надо в отдел BAT файлов. ПоО моему, можно сделать так, чтобы из командной строки архив распаковывался в папку, и переименовывался текстовик по имени стартовой папки. Если запускать разархивацию не параллельно, а последовательно, то все будет работать.

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)


Отправлено: 13:39, 29-09-2010 | #2



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

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


Ветеран


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

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


Delirium, вы как всесильный модератор можете перенести куда надо?

-------
Моя статья на OSzone.net


Отправлено: 20:22, 29-09-2010 | #3


Googler


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

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


Цитата truvo:
Можно ли написать такую утилитку, или, может, найдется архиватор, который такое умеет? »
думаю, такое можно с любым архиватором осуществить...
например, RAR'ом можно перед распаковкой переименовать файлы readme.txt прямо в архивах:
Код: Выделить весь код
for %%i in (*.rar) do rar rn "%%i" readme.txt "%%~ni_readme.txt"
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:32, 30-09-2010 | #4


Старожил


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

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


Надобы найти бесплатный разархиватор ZIP`ов, ибо RAR все же надо покупать... (я на сайте pkware не нашел )

Код: Выделить весь код
@Echo off
setLocal EnableExtensions

set total=0
set proceed=0

for %%F in (*.zip) do call :unpack "%%F"
echo Found %total% archives, unpacked %proceed%
goto End

:unpack
del /f "%~n1.txt" 2>nul
set /a total+=1
 rem Здесь должна быть команда распаковки архива %1
 "%ProgramFiles%\WinRar\winrar.exe" e -o+ %1
if %ErrorLevel%==0 set /a proceed+=1
ren readme.txt "%~n1.txt"
exit /b

:End

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


Отправлено: 13:56, 30-09-2010 | #5


Ветеран


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

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


amel27, изменил ваш текст на
Код: Выделить весь код
for %%i in (*.zip) do "%ProgramFiles%\WinRar\winrar.exe" rn "%%i" readme.txt "%%~ni_readme.txt"
Работает. Это уже почти выход, спасибо.

NiOl, пока недопонял. В вашем способе - тот же результат, что у amel27, или вы пошли дальше?

-------
Моя статья на OSzone.net


Последний раз редактировалось truvo, 30-09-2010 в 19:58. Причина: решил задачу сам


Отправлено: 18:51, 30-09-2010 | #6


Аватара для gora

Ушёл из жизни


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

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


Цитата NiOl:
Надобы найти бесплатный разархиватор ZIP`ов, ибо RAR все же надо покупать... (я на сайте pkware не нашел ) »
7-Zip
Цитата:
7z e archive.zip

извлекает все файлы из архива archive.zip в текущий каталог.

7z e archive.zip -oc:\soft

извлекает все файлы из архива archive.zip в папку c:\soft.

Отправлено: 23:21, 30-09-2010 | #7


Аватара для Delirium

Ветеран


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

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


Господа, вы о чем вообще говорите. WinRar, во первых, это условно-бесплатная программа, т.е. ей можно пользоваться и не покупая, просто окно Winrar будет надоедать. А вот утилитка RAR.exe из состава Winrar - бесплатна, и ей можно спокойно пользоваться, не нарушая лицензионных прав.
Ну либо пользоваться 7-zip.

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)


Отправлено: 01:01, 01-10-2010 | #8


Googler


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

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


Цитата Delirium:
WinRar, во первых, это условно-бесплатная программа, т.е. ей можно пользоваться и не покупая, просто окно Winrar будет надоедать. А вот утилитка RAR.exe из состава Winrar - бесплатна, и ей можно спокойно пользоваться, не нарушая лицензионных прав. »
скажем, freeware она точно не является:
Цитата http://www.win-rar.ru/product/winrar/:
WinRAR – это shareware-продукт, который даёт возможность бесплатно попробовать продукт перед покупкой в течение 40 дней.
RAR.EXE хоть и работает без проблем, но также выдаёт предупреждение о незарегистрированной версии

Отправлено: 02:41, 01-10-2010 | #9


Googler


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

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


на 7z будет где-то так (d1-каталог с архивами, d2-куда распаковывать):
Код: Выделить весь код
@set d1=C:\7Z
@set d2=C:\TO
@for %%i in ("%d1%\*.7z") do @(
  @7za e "%%i" -aoa -o"%d2%"
  @ren "%d2%\readme.txt" "%%~ni_readme.txt" 2>nul
)

Отправлено: 03:18, 01-10-2010 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Система - Программы для поиска и удаления дубликатов файлов Alex Cop Программное обеспечение Windows 61 07-01-2018 12:00
Установка - [решено] Зависание при установке - 0% при распаковке и ни с места SirDrake Microsoft Windows 7 14 12-12-2009 22:38
Ищу программу для поиска файлов дубликатов VbInt Хочу все знать 10 20-10-2009 10:54
ошибка при распаковке архивов D!MON! Непонятные проблемы с Железом 4 02-07-2008 20:17
Разное - CloneSpy - автоматическое/полуавтоматическое удаление дубликатов файлов ShaRP Программное обеспечение Windows 0 25-05-2008 19:54




 
Переход