2016-02-28 6 views
0

У меня есть сценарий для извлечения всех архивов в папке в папки с именами архивов, я хочу изменить это, чтобы он извлекал только один файл из каждого архива (неважно, какой) он будет вести себя так, как будто есть счетчик, который будет считать 1 файл и перейти к следующему архиву.Консольная команда для извлечения только одного файла из архива? (7z)

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

a.7z {folder{1.txt, 2.txt, 3.txt}} 
b.7z {folder2{4.txt, 5.txt, 6.txt}} 
c.7z {7.txt} 

Итак, запустив сценарий приведет имеющий следующие извлеченные (те папки):

a{folder{1.txt}} 
b{folder2{4.txt}} 
c{7.txt} 

Возможно ли это?

Это сценарий, я в настоящее время:

PATH %PATH%;"C:\Program Files\7-Zip"; 
7z x *.* -o* 

ответ

1

Вы можете получить список файлов в архиве, используя

7z l a.7z 

Если все файлы заканчиваются .txt, можно использовать

7z l a.7z | find "txt" 

Используйте этот ответ, чтобы получить первую строку: Windows batch command(s) to read first line from text file

Затем используйте этот ответ, чтобы получить имя файла (последнее слово) из строки и сохранить его в пакете переменной FILE_NAME: https://superuser.com/questions/667494/batch-to-extract-a-word-from-a-string-inside-a-text-file

Затем используйте следующую команду для извлечения файла:

7z e -i!%FILE_NAME% a.7z -o* 

Вы можете использовать этот пример, чтобы перебирать все * .7z файлы Iterate all files in a directory using a 'for' loop

for /r %%i in (*.7z) do echo %%i 

Все части вместе:

@echo off 

for %%i in (*.7z) do call :extract_file %%i 

:extract_file 
"c:\Program Files\7-Zip\7z.exe" l %1 > temp.txt 
for /f "skip=15 tokens=1-10" %%a in (temp.txt) do (
    echo %%f 
    "c:\Program Files\7-Zip\7z.exe" e -i!%%f %1 -o* 
    goto :end 
) 
:end 
EXIT /B 0 

:eof 
+0

Расширения архивов может быть что угодно, даже '' zip1' или rar1', файлы в них может быть что угодно, как хорошо, и я хотел бы сохранить папку структуру внутри каждого архива при извлечении, но извлекать только один файл, а не весь архив. – shinzou

+0

Я отредактировал ответ с более полными решениями. Я все еще не нашел способ сохранить структуру файла 7z. – Ale

 Смежные вопросы

  • Нет связанных вопросов^_^