Как удалить все файлы 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
- Folder1
zzz.doc
в AnotherArchive.rar
переписал zzz.doc
в MyFirstArchive.rar
,
Вторая команда с переключателем -ad
результаты в:
- C: \ Temp \ Извлеченные
- MyFirstArchive
- Folder1
- xxx.pdf
- yyy.txt
- zzz.doc
- Folder1
- AnotherArchive
- Folder1
- index.txt
- Folder2
- index.txt
- index.txt
- zzz.doc
- Folder1
- MyFirstArchive
Папка и файлы двух архивов извлекаются в отдельные папки с именем архива.