Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 23.01.2018
Сообщений: 101

Получить содержимое всех архивов *.arj в папке

24.05.2018, 10:35. Показов 2545. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть папка: D:\arh
Необходимо написать батник для просмотра содержимого архивов и вывести информацию на экран и в текстовый файл.
текстовый файл должен быть формата:
-имяархива1.arj
--файл1.doc
--файл2.jpg
--файл3.xlsx

-имяархива2.arj
--файл2.doc
--файл1.jpg
--файл4.xlsx

-имяархива3.arj
--файл2.pdf
--файл1.xml
--файл0.txt

заранее спасибо за помощь. нашел батник для просмотра содержимого одного архива:

Windows Batch file
1
2
3
4
5
6
@echo off
setlocal enabledelayedexpansion
set "arx=d:\tmp\tmp.arj"
for /f "delims=:" %%a in ('""%ProgramFiles%\7-Zip\7z.exe" l "%arx%"|findstr/rn /c:"^---""') do set/a n+=1& set "v!n!=%%a"& set/a nd=v1+1& set/a kd=v2-1  
for /f "tokens=5*" %%a in ('"for /l %%a in (%nd%,1,%kd%) do @"%ProgramFiles%\7-Zip\7z.exe" l "%arx%"|find /n /v ""|find "[%%a]""') do echo %%b
pause>nul
помогите переделать или написать новый батник под мою задачу. спасибо за помощь.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.05.2018, 10:35
Ответы с готовыми решениями:

Получить в treeview содержимое всех архивов *.zip в папке
Всем привет. Есть папка. D:\arh\other\ . В ней лежат архивы *.zip. Как можно получить содержимое всех архивов в папке в treeview? ...

Создание BAT файла для создания архивов из файлов в папке включая содержимое ее подкаталогов
Доброго дня, уважаемые пользователи!! Прошу помощи ибо сил нет никаких уже) Имеется задание: сложить в архивы все файлы содержащиеся в...

Распаковать определенные файлы из всех архивов в указанной папке
с помощью 7z из указанной папки распаковать из всех архивов arj и rar все файлы pdf. в архивах могут быть еще архивы, в них так же могут...

11
222 / 175 / 73
Регистрация: 05.11.2015
Сообщений: 533
24.05.2018, 12:32
Лучший ответ Сообщение было отмечено a_lligator как решение

Решение

a_lligator, можно так:

Windows Batch file
1
2
FOR /F "tokens=* delims=" %%A in ('dir /b /s *.arj') do ("c:\Program Files\7-Zip\7z.exe" l -r "%%A" >> listing.txt)
pause
1
0 / 0 / 0
Регистрация: 23.01.2018
Сообщений: 101
24.05.2018, 12:33  [ТС]
bd_13, ваш батник работает, только если в папке с ним лежат архивы.
а как переделать так что бы, можно было указывать путь к папке с архивами?
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
24.05.2018, 20:45
Лучший ответ Сообщение было отмечено a_lligator как решение

Решение

Запуск в папке с файлами архивов, например или указать свой путь: dir /a-d/b "Диск:\папка\*.%exp%"
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@echo off
set "exp=arj"
set "arch=%ProgramFiles%\7-Zip\7z.exe"
for /f "delims=" %%a in ('dir /a-d/b "*.%exp%"') do call :# "%%a"
pause& exit
 
:#
 setlocal enabledelayedexpansion
  for /f "delims=:" %%a in ('""%arch%" l "%~1"|findstr /rn /c:"^---""') do set /a n+=1& set "v!n!=%%a"& set /a "nd=v1+1,kd=v2-1"
  echo Содержимое "%~1":
  >>list.txt echo Содержимое "%~1":
  for /f "tokens=5*" %%a in ('"for /l %%a in (!nd!,1,!kd!) do @"%arch%" l "%~1"|find /n /v ""|find "[%%a]""') do (
   echo %%b
   >>list.txt echo %%b
  )
 endlocal
exit /b
1
0 / 0 / 0
Регистрация: 23.01.2018
Сообщений: 101
25.05.2018, 08:54  [ТС]
alpap, только есть еще один момнент.
Если в архивах в именах файлов русские буквы, то он выводит абракадабру. дело похоже в кодировке. как исправить этот момент? спасибо
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
25.05.2018, 09:06
a_lligator,
сохранять код в кодировке OEM 866, у меня AkelPad и выставлено автоматом это делать, поэтому об этом даже не задумываюсь.
1
0 / 0 / 0
Регистрация: 23.01.2018
Сообщений: 101
25.05.2018, 09:10  [ТС]
alpap, а в самом батнике как можно менять кодировку? спасибо за помощь!
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
25.05.2018, 09:34
Лучший ответ Сообщение было отмечено a_lligator как решение

Решение

а вообще работает и так (короче существенно)
Windows Batch file
1
2
3
4
5
6
7
8
9
10
@echo off
set "exp=arj"
set "arch=%ProgramFiles%\7-Zip\7z.exe"
for /f "delims=" %%a in ('dir /a-d/b "*.%exp%"') do call :# "%%a"
pause& exit
 
:#
 echo Содержимое "%~1":& >>list.txt echo Содержимое "%~1":
 for /f "tokens=5*" %%a in ('""%arch%" l "%~1"|findstr \.\.\.\."') do echo %%b& >>list.txt echo %%b
exit /b
Добавлено через 2 минуты
Цитата Сообщение от a_lligator Посмотреть сообщение
а в самом батнике как можно менять кодировку?
не в батнике. На этапе сохранения. Вы же создаете в файле txt, нажимаете потом "Сохранить как", выбираете кодировку 866, имя, расширение bat и сохраняете.
1
0 / 0 / 0
Регистрация: 23.01.2018
Сообщений: 101
25.05.2018, 10:22  [ТС]
alpap, Нет, в самом батнике все нормально выводит. сохраняет в файл не с той кодировкой., а батник сам сохранен в 866
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
25.05.2018, 22:32
a_lligator,
так и файл тоже надо сохранить в 866.

Добавлено через 2 минуты
или добавьте вначале кода строку: chcp 1251, но теперь уже батник сохранить в кодировке тоже 1251 и файл в 1251.
0
0 / 0 / 0
Регистрация: 23.01.2018
Сообщений: 101
28.05.2018, 16:06  [ТС]
alpap, а можно как то вывести полный путь до архива в текстовый файл?
что бы в тестовый файл записывалось, к примеру Содержимое D:\arh\1.arj
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
28.05.2018, 18:54
Цитата Сообщение от a_lligator Посмотреть сообщение
к примеру Содержимое D:\arh\1.arj
а это что?
стр 8
Цитата Сообщение от alpap Посмотреть сообщение
... >>list.txt echo Содержимое "%~1":
Добавлено через 1 минуту
а понял, полный, в стр 4 поменяйте dir /a-d/b... на dir /a-d/b/s...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.05.2018, 18:54
Помогаю со студенческими работами здесь

Извлечение файлов из архивов Rar, Zip, Arj
Всем привет! Вот столкнулся с задачей... нужно извлекать файлы из архивов. Все усложняется тем что архиваторы могут быть разные. Есть...

Разархивирование файлов по маске из архивов ARJ, RAR, ZIP с удалением из архива
Здравствуйте! Необходимо разархивировать файлы с определенной маской из архива в текущий каталог без создания каталога. Если в этом...

Winrar + командная строка для разархивации всех архивов в папке в отдельные папки с указанием пароля
Подскажите пожалуйста, как написать batник для разархивации всех архивов в папке в отдельные папки с указанием пароля?

Получить имена всех файлов в папке с другого сервера
В общем смысл такой: Есть 2 сайта на разных серверах. На одном сайте нужно получить название файлов из заранее известной папки со...

Получить имена всех файлов, содержащихся в известной папке
Как можно с помощью FileSystemObject получить имена всех файлов, содержащихся в конкретной папке. Вот такой вопрос. А можно и не с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru