IvanIlyasov
@IvanIlyasov
Познаю мир

Как удалить все файлы и подпапки, кроме заданного файла с сохранением его пути (подпапок)?

Искал. То что надо не нашел. Нужен батник или скрипт.
Ситуация:
Есть папка, допустим "folder" в папке еще куча папок с разными названиями, и в каждой из этих папок есть папка с названием "special-folder" и в этой папке есть файл "file.php"
Задача:
Удалить все файлы и папки, в которых нет файла и подпапки " /special-folder/file.php".

То есть путь, например, такой:
C:/folder/kakayato-podpapka/special-folder/file.php - сохраняем. В папке "kakayato-podpapka" не должно быть ничего, кроме папки "special-folder", а в папке "special-folder" не должно быть ничего кроме файла "file.php".
C:/folder/another-podpapka/special-folder/file.php - сохраняем.
C:/folder/kakayato-podpapka/special-folder/another-file.php - удаляем всё
C:/folder/kakayato-podpapka/another-folder/file.php - удаляем всё
  • Вопрос задан
  • 1432 просмотра
Решения вопроса 1
@res2001
Developer, ex-admin
@echo off
set "pathdir=c:\script\test\del"
set "filename=special-folder\file.php"
for /f "tokens=* delims=" %%b in ('dir /a:-d /b /s "%pathdir%\*" 2^>nul ^| findstr /v /c:"%filename%" 2^>nul') do (
  del /q /f "%%~b" 2>nul
)
for /f "tokens=* delims=" %%a in ('dir /a:d /b /s "%pathdir%" 2^>nul') do (
  dir /a:-d /b /s "%%~a\*" 1>nul 2>&1 || rd /s /q "%%~a" 2>nul
)

Код сохраните в .bat файл, инициализируйте правильно переменные: pathdir и filename.
И потренируйтесь на "кошечках".
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы