Как удалить файлы в подпапках, начиная с «что-то» - PullRequest
0 голосов
/ 15 февраля 2019

Я хотел бы удалить конкретный файл (* .jpg) во многих подпапках, начиная с 'an', но я не хочу удалять файлы jpeg из других подпапок.

Я попробовал команду:

for /f "delims=" %%A in ('dir "your_path\an*" /b /ad') do echo (cd %%A & echo del /F /Q /S "*.jpg")

но эта команда удаляет все файлы jpg во всех подпапках.

Каталог не очень сложен:

C:
  Users
    user_name
        My pictures
            goo [Main folder]
                inn_01 (sub folder)
                    a.jpg (to remove)
                inn_02 (sub folder)
                    a.jpg (to remove)
                ...
                001 (sub folder)
                    a.jpg (to keep)
                002 (sub folder)
                    a.jpg (to keep)
                ...

Ответы [ 2 ]

0 голосов
/ 15 февраля 2019

Попробуйте, пожалуйста, очень прямо.Удалите echo, как только вы будете готовы к фактическому удалению.

@echo off
for /f "delims=" %%i in ('dir "your_path\inn*" /b /ad') do (
        echo del /F /Q "%%~fi\*.jpg"
)

Примечание. НЕ добавляйте /S в команду del, пожалуйста.

0 голосов
/ 15 февраля 2019

Удалите /S из команды del:

<Prompt>del /?
Deletes one or more files.

DEL [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names
ERASE [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names

  names         Specifies a list of one or more files or directories.
                Wildcards may be used to delete multiple files. If a
                directory is specified, all files within the directory
                will be deleted.

  /S            Delete specified files from all subdirectories.

Редактировать после комментария

Поскольку это, похоже, не работает, что насчет ForFiles?Что-то вроде:

forfiles /s /C "cmd /c echo @path\@file"

(Вы можете добавить IF -класс в часть "cmd /c)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...