Windows рекурсивное переименование файлов

Я немного застрял здесь, я создал простой файл для zip-папок со специальным именем.
Итак, допустим, мы ищем папки с именем "tozip", но имя zip файла будет папке имя + имя папки.
например
все файлы в 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 к имени файла. Я увидел, что могу извлечь напр. Filename %%~nxi или полный путь, но, к сожалению, не та информация, которая мне нужна. Есть идеи по этому поводу?

2
задан Hennes
19.04.2023 3:03 Количество просмотров материала 2894
Распечатать страницу

1 ответ

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

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

@echo off
for /D /R C:\test\ %%G in (tozip*) do (
    FOR %%H IN ("%%G\..") DO echo %%~nxH 
)
pause
1
отвечен Squashman 2023-04-20 10:51

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх