Removendo pastas com um arquivo em lote

0

Você provavelmente reconhecerá o script abaixo, especialmente este comando que foi postado aqui há mais de um ano:

for /f %%i in ('dir /a:d /s /b *PGP Corporation*') do echo rd /s %%i

No entanto, estou com problemas porque não está reconhecendo PGP Corporation , tudo que vê é PGP . Experimentei as aspas, mas não ajudou. Alguma idéia?

@echo off
cls
echo searching for pgp corp folders
cd c:\users
for /f %%i in ('dir /a:d /s /b *PGP Corporation*') do echo rd /s %%i
echo are these the folders you want to delete? 
choice /t 15 /d n /M "Do you want to delete these folders type y for yes"
if errorlevel 2 goto no
if errorlevel 1 goto yes
goto end

:no
echo you slelected no
pause
goto end

:yes
echo you selected yes and the folders will be deleted
for /f %%i in ('dir /a:d /s /b *PGP Corporation*') do rd /s /q %%i

choice /t 15 /d n /m "Do you want to try and install PGP 10.3 now?
if errorlevel 2 goto noo
if errorlevel 1 goto yess

:noo
echo you selected not to instal. Goodbye.
goto end

:yess
echo Installation of PGP will begin Momentarily
"\dts\apps\PGP\PGP Latest\pgp 103 64bit.msi"

pause
    
por Josh 30.12.2013 / 21:52

1 resposta

1

Sua pasta possui espaços, portanto, é necessário colocá-la entre aspas duplas (nos comandos for e do ) e especifique que o loop for não deve ser usado espaços como delimitadores com a opção delims :

for /f "delims=" %%i in ('dir /a:d /s /b "*PGP Corporation*"') do echo rd /s "%%i"
    
por 30.12.2013 / 22:01