Как удалить все файлы RAR в папке с определенной целевой папкой?

У меня есть пакет файлов, чтобы удалить все файлы RAR из папки в подпапку.

C:\test\sub-folder\file.rar -> C:\test\sub-folder\fileunrar

Но когда я запускаю его, файл распаковывается в базовую папку:

C:\test\sub-folder\file.rar -> C:\test\fileunrar

Это командный файл, который я сейчас использую:

@ECHO OFF
cd C:\test
SET PATH=C:;C:\Program Files\WinRAR;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;%PATH%
FOR /f "delims=" %%d IN ('DIR /B') DO unRaR x -y -r -o- *.rar
EXIT

Почему архивы RAR извлекаются в базовую папку?

1 ответ

Есть текстовый файл Rar.txt в папке программных файлов WinRAR, которая является руководством для консольной версии Rar.exe содержит также все команды и переключатели, поддерживаемые UnRAR.exe который, конечно, не может создавать, обновлять или восстанавливать RAR-архивы.

Запуск в окне командной строки просто UnRAR.exe без каких-либо параметров приводит к отображению всех поддерживаемых команд и переключателей с кратким описанием.

UnRAR, Rar а также WinRAR поддерживает все распаковки нескольких файлов *.rar в каталоге без необходимости пакетного файла с циклом FOR с помощью одной команды.

Для распаковки многотомного архива достаточно указать в командной строке имя файла первого архива RAR. UnRAR, Rar а также WinRAR автоматически определяет, что этот файл является первым файлом многотомного архива и обрабатывает автоматически все тома.

Конечно UnRAR, Rar а также WinRAR не обрабатывайте каждый файл *.rar более одного раза при распаковке всех файлов *.rar из папки, содержащей несколько отдельных архивов, а также 1 или более многотомных архивов.

Для распаковки нескольких независимых *.rar архивов одной строкой -ad может быть полезным, чтобы избежать слияния содержимого всех независимых архивов в один каталог.

Для распаковки всех *.rar архивов в каталог C:\Temp в каталог C:\Temp\Extracted при объединении файлов и папок из всех архивов в этот каталог и автоматической перезаписи всех существующих файлов используйте следующую команду:

"%ProgramFiles%\WinRAR\UnRAR.exe" x -c- -cfg- -inul -o+ -y "C:\Temp\*.rar" "C:\Temp\Extracted\"

Извлечение всех файлов *.rar в C:\Temp с получением каждого независимого архива, извлеченного в подкаталог в C:\Temp\Extracted с именем файла архива может быть достигнуто с помощью:

"%ProgramFiles%\WinRAR\UnRAR.exe" x -ad -c- -cfg- -inul -o+ -y "C:\Temp\*.rar" "C:\Temp\Extracted\"

Переключатель -ad имеет значение в выходной папке.

Не имеет значения, если C:\Temp\Extracted уже существует или еще не существует для распаковки архивов. UnRAR, Rar а также WinRAR всегда создавайте при извлечении все дерево каталогов для выходной папки, если это необходимо и, конечно, возможно (права на запись, диск / общий ресурс существуют и не защищены от записи).

Давайте посмотрим на пример, чтобы сделать разницу более ясной.

Есть 2 архива RAR MyFirstArchive.rar а также AnotherArchive.rar в C:\Temp содержащие следующие файлы и папки.

MyFirstArchive.rar

 Attributes      Size    Date   Time   Name
----------- ---------  -------- -----  ----
    .......      6302  11-10-15 15:25  zzz.doc
    .......    940942  26-08-15 08:07  yyy.txt
    .......   1430688  06-10-14 05:49  Folder1\xxx.pdf
    ...D...         0  12-10-15 07:10  Folder1
----------- ---------  -------- -----  ----
              2377932                  4

AnotherArchive.rar

 Attributes      Size    Date   Time   Name
----------- ---------  -------- -----  ----
    .......     28165  08-01-12 17:50  zzz.doc
    .......      3743  29-10-14 07:18  Folder2\index.txt
    .......     27141  29-10-14 07:18  Folder1\index.txt
    .......    940942  26-08-15 08:07  index.txt
    ...D...         0  12-10-15 07:10  Folder1
    ...D...         0  12-10-15 07:12  Folder2
----------- ---------  -------- -----  ----
               999991                  6

Первая команда приводит к:

  • C: \ Temp \ Извлеченные
    • Folder1
      • index.txt
      • xxx.pdf
    • Folder2
      • index.txt
    • index.txt
    • yyy.txt
    • zzz.doc

zzz.doc в AnotherArchive.rar переписал zzz.doc в MyFirstArchive.rar,

Вторая команда с переключателем -ad результаты в:

  • C: \ Temp \ Извлеченные
    • MyFirstArchive
      • Folder1
        • xxx.pdf
      • yyy.txt
      • zzz.doc
    • AnotherArchive
      • Folder1
        • index.txt
      • Folder2
        • index.txt
      • index.txt
      • zzz.doc

Папка и файлы двух архивов извлекаются в отдельные папки с именем архива.

Другие вопросы по тегам