Como excluir pastas que não possuem um nome “xyz” com script de lote do Windows

3

Eu tenho uma pasta C:\remote que tem duas pastas, A e B. Cada uma delas contém várias pastas dentro dela, por exemplo xyc , dsx , axyz e assim por diante. Desejo excluir qualquer subpasta que não tenha um nome xyz .

Eu tenho o seguinte script:

set folder="C:\Users\rmakkena\AppData\Roaming\TabMigrate.212.38.15\TBM\workbooks" 
cd /d %folder% 
for /F "delims<>" %%i in ('migrate') do (rmdir "%%i" /s/q || del "%%i" /s/q)

Eu queria excluir todas as pastas que não são nomeadas como migrate .

    
por user2158642 15.03.2016 / 17:24

1 resposta

0

Desejo excluir todas as pastas que não contêm a cadeia de caracteres migrar

Use o seguinte arquivo em lotes:

@echo off
setlocal disableDelayedExpansion
set folder="C:\Users\rmakkena\AppData\Roaming\TabMigrate.212.38.15\TBM\workbooks" 
cd /d %folder% 
for /f "usebackq tokens=*" %%i in ('dir /a:d /b /s ^| findstr /v /i migrate' ) do (
  echo rd /s /q %%i
)
endlocal

Notas:

  • Remova o echo quando estiver satisfeito com o que o arquivo em lote fará.

Leitura Adicional

por 15.03.2016 / 20:08

Tags