Como remover diretórios usando curingas lendo um arquivo usando lote?

2

Arquivo em lote

for /f "delims=" %%f in (7profiledeletelist.txt) do rd /s /q "%%f"
PAUSE
exit

7profiledeletelist.txt

C:\Users*
C:\Users*
C:\Users*
C:\Users*
C:\Users*
C:\Users*
C:\Users*
C:\Users*
C:\Users*
C:\Users\M*
C:\Users\T*

Depois de ler o arquivo 7profiledeletelist.txt , o arquivo bat não pode excluir nada.

Se eu remover * e escrever o nome exato do diretório, ele está funcionando bem. Desejo excluir todas as pastas que começam com M , T , 1 até 9 no diretório Users.

Como o 7profiledeletelist.txt ou o script em lote precisam ser alterados para que ele funcione? Existe um código errado no script em lote?

    
por serdar 18.10.2014 / 16:03

1 resposta

3

De acordo com este Q & A , rmdir não aceita curingas. No entanto, emitindo o seguinte comando:

for /D %f in (1*) do rmdir %f /s /q

remove todas as pastas que começam com 1 .

De acordo com este Q & A , é possível ler um arquivo linha por linha usando lote.

rmdir_regex.bat

@echo off

for /f "tokens=*" %%a in (7profiledeletelist.txt) do (
  for /D %%f in (%%a) do rmdir %%f /s /q
)
    
por 18.10.2014 / 16:20