1

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

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 ответ1

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 получения дополнительных параметров

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .