2013-09-20 2 views
0

Я использовал подсказку о том, как делать то, что я хочу, но у меня есть трудности, папки, которые начинаются с "! " например: c:\!test, а посередине - «.». например: c:\test.test не стираются. Вы можете мне помочь?Как удалить все папки с тем же именем в папке, где находится, и вложенных папках с использованием cmd/пакетного файла

@Echo OFF 
echo. 
setlocal enabledelayedexpansion 
echo Search... 
FOR /R %root% %%A IN (.) DO (
    if '%%A'=='' goto end 
    set dir="%%A" 
    set dir=!dir:.=! 
    set directory=%%A 
    set directory=!directory:.=! 
    set directory=!directory::=! 
    set directory=!directory:\=;! 
    for /f "tokens=* delims=;" %%P in ("!directory!") do call :loop %%P 
) 
:end 
echo. 
echo Finished. 
echo Press any key to exit... 
pause >nul 
endlocal 
exit 
:loop 
if '%1'=='' goto endloop 
if '%1'=='history' (
    rd /S /Q !dir! 
    echo !dir! was deleted. 
) 
SHIFT 
goto :loop 
:endloop 

ответ

1

Я думаю, что ваш код проверяет каждую папку, и если он находит те, называемые history тогда все они удалены.

Если это задача, тогда это должно сделать то же самое.

@echo off 
FOR /D /R %root% %%A IN (*) DO if /i "%%~nxA"=="history" if exist "%%A\" rd /s /q "%%A" & echo "%%A" has been deleted 
+0

Спасибо, это так. Дает ввести код для ответа: путь \ история удалила? – Sweeper

+0

Я добавил команду echo в конец строки. – foxidrive

+0

ОК. Спасибо, много помогли. – Sweeper

Смежные вопросы