Win cmd rar каждый файл отдельно сохраняя имя, с пробелами

Я использую Windows, и у меня есть огромный список файлов

something nextthing.ext
other something.ext
banana apple.ext

Я пытаюсь создать следующее:

something nextthing.rar
other something.rar
banana apple.rar

Я провел некоторое исследование, и я не мог найти, как это сделать. Я знаю, что в WinRAR есть встроенный способ сделать это, но он не позволит мне сохранить имена. Просто переименовывает их в Foldername1.rar, Foldername2.rar....

Я попытался использовать следующую командную строку:

for /f "delims=|" %f in ('dir /b "C:\Users\Adam\ Desktop\Files"') do rar a %f *.rar

Однако он не генерирует все файлы, и они, кажется, неправильно названы...

Например, то, что должно быть banana apple.rar, становится banana.rar и apple.rar.


person Adam    schedule 13.08.2014    source источник


Ответы (2)


Ладно, нашел как....

@echo off &setlocal
set "path=C:\Program Files\WinRAR;%path%"

:indiv
echo(
echo(
FOR %%i IN (*) do (
    rar a "%%~ni.rar" "%%~i" || echo Error building archive!
)
person Adam    schedule 13.08.2014

Вы можете использовать в окне командной строки для сжатия каждого файла в каталоге в отдельный архив:

for /f "delims=" %f in ('dir "%USERPROFILE%\Desktop\Files" /B /A-D') do "%ProgramFiles%\WinRAR\Rar.exe" a -ep1 -idcdp "%~nf.rar" "%f"

Важны двойные кавычки вокруг %f, поскольку некоторые имена файлов содержат 1 или более пробелов, и в этом случае имена файлов должны быть заключены в двойные кавычки.

Команда выше для использования в пакетном файле:

@echo off
for /f "delims=" %%f in ('dir "%USERPROFILE%\Desktop\Files" /B /A-D') do "%ProgramFiles%\WinRAR\Rar.exe" a -ep1 -idcdp "%%~nf.rar" "%%f"

Эта команда игнорирует вложенные папки из-за /A-D. Он сжимает только каждый файл в каталоге Files на рабочем столе текущего пользователя.

person Mofi    schedule 13.08.2014