Você provavelmente reconhecerá o script abaixo, especialmente este comando, publicado 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 tendo problemas com isso porque não está reconhecendo PGP Corporation
, tudo o que PGP
vejo é que tentei aspas, mas não ajudou. Alguma ideia?
@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
command-line
batch
batch-file
Josh
fonte
fonte
Respostas:
Sua pasta possui espaços, portanto, você deve agrupá-la entre aspas duplas (no
for
comando e nodo
comando) e especificar que ofor
loop não deve usar espaços como delimitadores com adelims
opção:fonte
"%%~i"
vez de simplesmente"%%~i"
, porque algumas versões do Windows produzem valor citado para afor
variável, outras não. Se o valor obtido for citado,"%%i"
produzirá aspas duplas, o que pode levar a efeitos colaterais.%%~i
é sempre sem aspas.echo
para que você possa verificar se tudo está correto antes de executar as alterações reais, porque interações inesperadas como essa podem surgir às vezes.