Пакетное извлечение файлов из каждого архива с помощью 7-zip

Я хочу использовать этот код в пакете. Первый шаг - ввести исходную папку, дерево которой будет выглядеть следующим образом:

enter image description here

то, что я хочу достичь, - это извлечь каждый тип архива в исходной папке в ту же папку, где находится архив, например. "архив.молния" напрямую "папка1".

есть этот код ниже, но не имеют ни малейшего понятия, как установить переменную назначения.

SET /P "source="

FOR %%F IN ("%source%*.zip") DO "C:Program Files-Zipz.exe" x "%source%%%~nF.zip"
FOR %%F IN ("%source%*.7z") DO "C:Program Files-Zipz.exe" x "%source%%%~nF.7z"
FOR %%F IN ("%source%*.rar") DO "C:Program Files-Zipz.exe" x "%source%%%~nF.rar"
22
задан Rayearth
15.03.2023 2:47 Количество просмотров материала 3431
Распечатать страницу

1 ответ

рекурсивно извлечь из архивных файлов с 7Zip в ту же папку архивный файл находится

можно использовать -o переключатель 7Zip, в котором будет указан полный путь к выходному каталогу команды extract для извлечения содержимого соответствующих архивных файлов.

можно использовать FOR / F цикл с рекурсивным DIR команда для перебора полных путей к архиву и передачи их в 7Zip соответственно, используя замены, чтобы заставить его работать, как вам это нужно.

Скрипт

@ECHO ON

SET source=C:\Users\User\Desktop\Test
FOR /F "TOKENS=*" %%F IN ('DIR /S /B "%source%\*.zip"') DO "C:\Program Files-Zipz.exe" x "%%~fF" -o"%%~pF\"
FOR /F "TOKENS=*" %%F IN ('DIR /S /B "%source%\*.7z"') DO "C:\Program Files-Zipz.exe" x "%%~fF" -o"%%~pF\"
FOR /F "TOKENS=*" %%F IN ('DIR /S /B "%source%\*.rar"') DO "C:\Program Files-Zipz.exe" x "%%~fF" -o"%%~pF\"
EXIT

Дополнительные Ресурсы

  • DIR
  • FOR / F

    кроме того, подстановка ссылок на переменные была улучшенный. Теперь можно использовать следующий необязательный синтаксис:

    %~I         - expands %I removing any surrounding quotes (")
    %~fI        - expands %I to a fully qualified path name
    %~dI        - expands %I to a drive letter only
    %~pI        - expands %I to a path only
    %~nI        - expands %I to a file name only
    %~xI        - expands %I to a file extension only
    %~sI        - expanded path contains short names only
    %~aI        - expands %I to file attributes of file
    %~tI        - expands %I to date/time of file
    %~zI        - expands %I to size of file
    %~$PATH:I   - searches the directories listed in the PATH
                   environment variable and expands %I to the
                   fully qualified name of the first one found.
                   If the environment variable name is not
                   defined or the file is not found by the
                   search, then this modifier expands to the
                   empty string
    
2
отвечен Pimp Juice IT 2023-03-16 10:35

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх