Используйте 7z для резервного копирования каждого подкаталога в отдельный файл

Моя файловая структура:

c:\csdata\folder1
c:\csdata\folder2
c:\csdata\folder3
etc

Я пытаюсь использовать 7z для резервного копирования всех папок в csdata в свой собственный архив во временную папку (C:\butemp).

Вот что у меня так далеко:

For /D %%i in (C:\csdata\*.*) DO 7za a "%%i.7z" "%%i"

Выше работает, но он создает файл 7z в csdata папка, потому что %%i равно полному пути.

1 ответ

Решение

for дает возможность извлекать (и комбинировать) различные части из переменной цикла (взятой из help for):

% ~ nI - расширяет%I только до имени файла
%~xI - расширяет%I только до расширения файла
(Усечены)

The modifiers can be combined to get compound results:

%~dpI       - expands %I to a drive letter and path only
%~nxI       - expands %I to a file name and extension only
(truncated)

Так что вы могли бы использовать 7za a "C:\butemp\%%~nxi.7z" "%%i"

Бежать help for для большего количества вариантов

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