Удалить "подмножество" файлов в командной строке Виндовс
От: paucity  
Дата: 27.03.19 16:07
Оценка:
Чет не нашел в какой раздел лучше вопрос задать...

Помогите люди добрые

Windows XP, 7, ..., 10,...

Есть туева хуча пар файлов с одинаковым названием и с разными расширениями, скажем для примера .EXE и .DAT.

Некоторые файлы не имеют пары, например только .EXE есть, а .DAT нет. Ситуация наоборот (.DAT есть, а .EXE нет) невозможна.

f1.exe
f1.dat
f2.exe
f3.exe
f3.dat

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

Если это как-то облегчает задачу, файлы могут быть как в одной папке, так и разнесены по двум папкам (EXE'шники в одной, DAT'ники в другой папке) -- т.е. размешение файлов будет под предложенное решение.

Заранее спасибо
Отредактировано 27.03.2019 16:11 paucity . Предыдущая версия . Еще …
Отредактировано 27.03.2019 16:10 paucity . Предыдущая версия .
Re: Удалить "подмножество" файлов в командной строке Виндовс
От: Kaifa Россия  
Дата: 27.03.19 16:30
Оценка: +1
P>Как в командной строке (или батником) удалить все не парные файлы?

P>Если это как-то облегчает задачу, файлы могут быть как в одной папке, так и разнесены по двум папкам (EXE'шники в одной, DAT'ники в другой папке) -- т.е. размешение файлов будет под предложенное решение.


P>Заранее спасибо


я бы из батника использовал wscript. там как угодно изголяйся
Re: Удалить "подмножество" файлов в командной строке Виндовс
От: const_volatile  
Дата: 27.03.19 16:49
Оценка: 1 (1)
Здравствуйте, paucity, Вы писали:

P>Как в командной строке (или батником) удалить все не парные файлы?


@echo off
setlocal ENABLEDELAYEDEXPANSION
for %%n in (*.exe) do (
    set filename=%%n
    set filename=!filename:.exe=.dat!
    if not exist !filename! del %%n
)
Re: Удалить "подмножество" файлов в командной строке Виндовс
От: spbav Россия  
Дата: 27.03.19 16:52
Оценка: 3 (1)
Здравствуйте, paucity, Вы писали:

P>Как в командной строке (или батником) удалить все не парные файлы?


как-то так:
for %%f in (*.exe) do (
  if not exist %%~nf.dat del /q %%f
)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.