Я немного застрял здесь, я создал простой файл, чтобы заархивировать папки со специальным именем. Итак, допустим, что мы ищем папки с именем "tozip", но имя заархивированного файла должно быть именем подпапки + имя папки. например, все файлы в C:/test/somefolder/123456/tozip/* должны быть добавлены в файл "123456_tozip.7z"

что у меня сейчас есть:

for /R /d /r %%i in (tozip*) do (
 7za a -tzip "%%i.7z" "%%i" -mx3
)

но это не добавляет имя папки n-1 к имени файла. Я видел, что могу извлечь, например, имя файла по %% ~ nxi или по полному пути, но, к сожалению, не ту информацию, которая мне нужна. Есть идеи по этому поводу?

1 ответ1

1

Вы были так близки, и у вас даже есть правильная идея, но вам нужно сделать еще один шаг вперед. Найдя каталог tozip вы можете поместить этот путь в другую команду FOR чтобы получить родительскую папку папки tozip .

Вот код, основанный на вашем примере.

@echo off
for /D /R C:\test\ %%G in (tozip*) do (
    FOR %%H IN ("%%G\..") DO echo %%~nxH 
)
pause

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