|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Поиск файла внутри архивов, определение размера и сохранение результата. |
|
|
CMD/BAT - [решено] Поиск файла внутри архивов, определение размера и сохранение результата.
|
Новый участник Сообщения: 31 |
Добрый час друзья!
Прошу у вас помощи, сам в cmd/batch примерно на уровне дуба. Однако тщательно погуглив мне не удалось найти решение моей задачи, поэтому спешу обратиться к вам ![]() Имеем: Множество zip/rar архивов (Все лежат по пути E:\Backup\) больших объемов (от 300мб до 50гб). Внутри архивов множество файлов, каталогов и вложенных подкаталогов. Требуется: не распаковывая эти архивы, произвести поиск по ним на наличие файла "Priority" (файл без расширения) и определить его размер. В случае если данный файл найден, то сохранить в find.txt путь до этого файла внутри архива, и размер этого файла (разделитель табуляция или любой другой). Что далее: я уже самостоятельно отфильтрую эти файлы по размеру, и с помощью нижеприведенного скрипта массово их распакую (включая все файлы рядом с ним и вложенные подкаталоги) в нужный мне каталог. "C:\SOFT\7-Zip\7z.exe" x "E:\Backup\25-02-19.rar" "IPBS\*" -o"C:\1" "C:\SOFT\7-Zip\7z.exe" x "E:\Backup\05_27-05-2019 1010.zip" "Data\*" -o"C:\1" ... |
|
Отправлено: 10:11, 09-07-2020 |
Ветеран Сообщения: 1758
|
|
Последний раз редактировалось Foreigner, 09-07-2020 в 11:17. Отправлено: 11:08, 09-07-2020 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 31
|
Профиль | Отправить PM | Цитировать Foreigner, спасибо, однако:
1. Пишет ошибку: "7z" не является внутренней или внешней командой, исполняемой программой или пакетным файлом. 2. Мне требуется поиск по всем .zip и .rar архивам которые лежат по пути E:\Backup\. Либо я не понял вашего кода, либо я понял верно, и производится поиск только в конкретном файле file.7z |
Отправлено: 11:37, 09-07-2020 | #3 |
Ветеран Сообщения: 1758
|
1specific,
1 - У меня симлинк на 7z.exe в %PATH%. Или создайте его, или пропишите в батнике полный путь к 7z.exe 2 - Тогда как-то так, но проверить уже не могу: |
Отправлено: 11:51, 09-07-2020 | #4 |
Новый участник Сообщения: 31
|
Профиль | Отправить PM | Цитировать Foreigner, Благодарю, уже что-то стало получаться, но остался ряд нюансов.
1. Почему то в file.txt, если файл найден, то он добавляется туда несколько раз. 2. В file.txt не указывается название самого архива в котором был найден файл, а без этого никак ![]() 3. Мелочь, но не соображу как размер перевести в килобайты. |
|
Отправлено: 15:47, 09-07-2020 | #5 |
Ветеран Сообщения: 1758
|
Цитата 1specific:
Цитата 1specific:
Цитата 1specific:
@echo off setlocal pushd E:\Backups for /f "tokens=*" %%i in ('dir /b *.zip *.rar') do call:1 "%%i" popd goto:eof :1 for /f "tokens=*" %%i in ('7z l %1 ^| findstr /e Priority') do ( for /f "tokens=4" %%j in ('echo %%i') do set "s=%%j" for %%j in (%%i) do set "p=%%j" ) if defined s (set /a "s/=1024") if defined p (echo %~nx1;%p%;%s% >> file.txt) set "p=" set "s=" |
|||
Отправлено: 18:43, 09-07-2020 | #6 |
Новый участник Сообщения: 31
|
Профиль | Отправить PM | Цитировать Foreigner, Спасибо за вашу помощь) Мне уже стыдно писать, но к сожалению извилин не хватает самому допилить и понять что не так.
Если запустить тот вариант который вы дали (последний), то появляется ошибка "Непредвиденно появление .zip". |
Отправлено: 20:05, 09-07-2020 | #7 |
Ветеран Сообщения: 1758
|
Цитата 1specific:
|
|
Отправлено: 20:43, 09-07-2020 | #8 |
Новый участник Сообщения: 31
|
Профиль | Отправить PM | Цитировать Foreigner, К сожалению не удается воспроизвести эту ошибку убрав @echo off. Если я убираю @echo off, то просто пробегается по архивам без ошибок.
p.s. при этом file.txt не создается (неважно @echo off есть или нету, с ошибкой или без) Пробовал с кодировками играться, тоже не помогло.(( |
Отправлено: 21:06, 09-07-2020 | #9 |
Ветеран Сообщения: 1758
|
Может лучше PowerShell?
|
Последний раз редактировалось Foreigner, 09-07-2020 в 21:51. Отправлено: 21:31, 09-07-2020 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] поиск в реестре и сохранение результата в *.Reg | sushnyak | Скриптовые языки администрирования Windows | 2 | 30-04-2024 22:50 | |
CMD/BAT - [решено] Поиск файла наибольшего размера | elis1 | Скриптовые языки администрирования Windows | 2 | 18-01-2013 11:37 | |
VBS/WSH/JS - определение размера файла | D_e_n_n | Скриптовые языки администрирования Windows | 9 | 24-02-2012 17:09 | |
CMD/BAT - [решено] Поиск чисел внутри файла | Hardip | Скриптовые языки администрирования Windows | 5 | 19-11-2010 15:20 | |
Интерфейс - [решено] поиск внутри pdf файла | ospa | Microsoft Windows 7 | 8 | 08-11-2010 22:05 |
|