O problema com o lote e o lote de origem também é que você não obtém nomes de pastas com espaços e não os cita.
Removemos alguns dos comentários.
@Echo off
set dirname=QBBackupTemp
set usewildcard=true
set found=false
if %usewildcard% == true set dirname=*%dirname%*
set directorytosearch=D:\Quickbooks
echo Searching for %dirname% in %directorytosearch%
pause
for /d %%i in (%directorytosearch%\%dirname%) do (
set found=true
echo Deleting the folder "%%i"
pause
REM Delete a folder, even if not empty, and don't prompt for confirmation
rmdir /s /q "%%i"
)
REM logic to do if no files were found
if NOT "%found%" == "true" (
echo No directories were found with the name of %dirname%
)
pause
EDIT removeu o supérfluo se, o for / d retornará somente os diretórios existentes.