Выборочное удаление Windows - PullRequest
       0

Выборочное удаление Windows

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

Я хотел бы удалить все подкаталоги с именем Debug Release x86 x64 из определенного местоположения, исключая все подкаталоги .git.Я легко могу сделать это в Linux (find -type d -name Debug -and -not .git -delete или что-то в этом роде).

Что я здесь не так сделал?FINDSTR с ключевыми словами в нижнем регистре debug release считается исключением, мне нужен поиск с учетом регистра.

FOR /R C:\code /D %%I IN (DIR /S /B Debug Release x86 x64 ^| FINDSTR /V \. ^| FINDSTR /V debug ^| FINDSTR /V release) DO ECHO %%I

Ответы [ 2 ]

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

Кажется, вы просто хотите рекурсивно удалить папку, начинающуюся с debug по определенному пути?:

@cd /d "C:\code"
@for /f "delims=" %%i in ('dir /b /s /ad "debug*"') do @echo @rmdir /S/Q "%%~fi"

просто удалите @echo, как только вы будете довольны результатами.Если я неправильно понял ваш вопрос, то, пожалуйста, дайте мне знать, но это то, что вы в значительной степени показали в строке поиска linux.

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

Используйте следующий код:

@echo off
setlocal EnableDelayedExpansion

pushd "dir_with_subfolders"
for /F "delims=" %%A IN ('dir /S /B /AD "Debug Release x86 x64"') do (
    set "loc=%%~fA"
    if "!loc:\.git\=!" == "!loc!" (
        rd /s /q "%%~fA"
    )
)
popd
pause & exit /b
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...