Как удалить все файлы в каталоге, но определенные имена файлов, перечисленные в текстовом файле

У меня есть папка с именем Demos1 с файлами внутри, все они имеют расширение .replay.

У меня есть пакетный скрипт в родительской папке Demos1, а также файл с именами файлов, которые я ТОЛЬКО хочу сохранить в текстовом файле с именем namediff.txt.

Я хочу рекурсивно сканировать каждое имя файла в namediff.txt по файлам, найденным внутри каталога, и если имена файлов (по одному в строке) в namediff.txt не соответствуют файлу, найденному в каталоге, удалить этот файл в Demos1 и оставить только файл имена, которые совпали в текстовом файле.

Это то, что у меня есть до сих пор.

PUSHD "%~dp0Demos1"

:--------------------------------------------------------------------------------------------

FOR /F "TOKENS=*" %%A IN ('DIR /B "*.replay"') DO (
    FOR /F "TOKENS=*" %%G IN ('%%~nxA') DO (
        IF NOT "%%~nxA"= = "%%~nxG" ECHO DEL "%%~nxG"
    )
)

Имена файлов в namediff.txt просто name.ext? Будет ли ваша партия просто удалять все файлы в demos1, в которых есть нет в namediff.txt?

Magoo 17.03.2022 22:38

Да, файлы namediff.txt находятся в каталоге. Я хочу сохранить в каталоге только те файлы, которые соответствуют именам, найденным в namediff.txt.

slyfox1186 17.03.2022 23:34
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
2
36
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
 FOR /F "TOKENS=*" %%A IN ('DIR /B /a-d "*.replay" ^|findstr /x /i /v /g:namediff.txt') DO echo del "%%A"

Должен сделать это. Findstr находит строки, которые /x точно соответствуют /i без учета регистра /g:filecontainingstringstomatch, а /v выдает не-совпадения со списком файлов, сгенерированных dir.

^ требуется для выхода из канала, который сообщает cmd, что канал является частью команды, которая должна быть выполнена, а не for.

/a-d исключает сопоставление имен каталогов - просто подход пояса и скобок.

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

Я изменил это, чтобы удовлетворить мои потребности. Спасибо.

slyfox1186 18.03.2022 05:27

Другие вопросы по теме

Как создать пакетный файл с выводом в лог-файл
Как отфильтровать процесс wmic при поиске процесса с определенной командной строкой с помощью wmic?
Bat для создания файлов m3u в нескольких папках, за исключением определенного расширения
Из пакетного файла мне нужно рекурсировать каталоги (и подкаталоги) и распаковать каждый найденный zip-файл в их текущий каталог с удалением архива
Пакетное открытие хрома на python
Как переместить 10 файлов Excel в 10 разных папок, созданных пакетным файлом
Как создать дистрибутивный zip-пакет из java-проекта в netbeans? содержащий .bat файл
Как экранировать специальные символы в пакетном файле при установке переменной
Пакетный файл Windows Infinite Loop зависает при запуске файла Python
Я не могу запустить скрипт autoit через планировщик задач во время входа в систему. Ни как летучая мышь, ни как exe. Они бегут сами по себе