![]() |
Поиск файла внутри архивов, определение размера и сохранение результата.
Добрый час друзья!
Прошу у вас помощи, сам в 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" |
Код:
@echo off |
Foreigner, спасибо, однако:
1. Пишет ошибку: "7z" не является внутренней или внешней командой, исполняемой программой или пакетным файлом. 2. Мне требуется поиск по всем .zip и .rar архивам которые лежат по пути E:\Backup\. Либо я не понял вашего кода, либо я понял верно, и производится поиск только в конкретном файле file.7z |
1specific,
1 - У меня симлинк на 7z.exe в %PATH%. Или создайте его, или пропишите в батнике полный путь к 7z.exe 2 - Тогда как-то так, но проверить уже не могу: Код:
@echo off |
Foreigner, Благодарю, уже что-то стало получаться, но остался ряд нюансов.
1. Почему то в file.txt, если файл найден, то он добавляется туда несколько раз. 2. В file.txt не указывается название самого архива в котором был найден файл, а без этого никак :) 3. Мелочь, но не соображу как размер перевести в килобайты. |
Цитата:
Цитата:
Цитата:
Код:
@echo off |
Foreigner, Спасибо за вашу помощь) Мне уже стыдно писать, но к сожалению извилин не хватает самому допилить и понять что не так.
Если запустить тот вариант который вы дали (последний), то появляется ошибка "Непредвиденно появление .zip". |
Цитата:
|
Foreigner, К сожалению не удается воспроизвести эту ошибку убрав @echo off. Если я убираю @echo off, то просто пробегается по архивам без ошибок.
p.s. при этом file.txt не создается (неважно @echo off есть или нету, с ошибкой или без) Пробовал с кодировками играться, тоже не помогло.(( |
Может лучше PowerShell?
Код:
Push-Location E:\Backups |
Код:
@Echo Off |
Foreigner, Спасибо за Ваше активное участие! Кстати попробовал powershell, но тоже какую то ошибку выдало.
megaloman, Ваш скрипт сходу ушел в работу, то что нужно! Огромное спасибо! |
Время: 03:50. |
Время: 03:50.
© OSzone.net 2001-