for /f "tokens=* delims=" %a in ('dir /b C:\Test\* ^| findstr /v /g:file.txt') do (del "%~a")
dir /b c:\test\* | findstr /v /g:file.txt
for /f "tokens=* delims=" %%a in ('dir ... ^| findstr ...') do (del %%a)
for /f "tokens=* delims=" %%a in ('C:\TestFolder\ ... ^| findstr /v /g:file.txt') do (del %%a)Непредвиденное появление: %%a.
forfiles /S /M * /C "cmd /c if @fsize GEQ 5000000 ECHO PaTh @fsize"
forfiles /S /M * /C "cmd /c if @fsize LSS 5000000 DEL @path"@path указать путь, то он удаляет все файлы
forfiles /S /M * /C "cmd /c if @fsize LSS 5000000 DEL C:\TestFolder"
find 'путь' -maxdepth 1 -not -name 'файл_который_нельзя_удалить' -print0 | xargs -0 rmfind 'путь' -maxdepth 1 -not -name 'файл_который_нельзя_удалить' -deleterm -f !(file.txt|data.dat)ls | grep -v sky | xargs rm -rfvls | grep -v sky | grep -v pacific | xargs rm -rfv
dir выдает результат из каталога без указания путей. Только названия файлов. Он почему-то ищет файлы из каталога C:\Test\ на том месте где я запустил командную строку и пишет, что файлы из каталога C:\Test\ нет в текущем каталоге.
Работает только если запускать команду в папке с файлами которые удаляются. В целом, вариант сойдет. Спасибо!