Войти

Показать полную графическую версию : [решено] Найти и удалить папку


clayton
21-01-2013, 01:19
Приветствую, примерно так:

cmdow @ /HID

set DeleteWar=C: for /R "%DeleteWar%" %%I In (delWar) Do Rd /q "%%I"

только не находятся/не удаляются имена с пробелами, например delWar 1, delWar I и т.п. а нужно, подскажите пожалуйста.

zion87
21-01-2013, 10:43
@echo off
set source=c:\
pushd %source%||exit /b 1
for /f "delims=*" %%a In ('dir /b /s /ad "delWar 1"') do rd /s /q "%%~dpadelWar 1"
popd

clayton
21-01-2013, 12:41
Спасибо!

clayton
21-01-2013, 20:23
в D не ищет к сожалению, если изменить раздел, консоль появляется на секунду...

zion87
21-01-2013, 23:36
@echo off

set source=c:\

pushd %source%||exit /b 1
for /f "delims=*" %%a In ('dir /b /s /ad "delWar 1"') do rd /s /q "%%~dpadelWar 1"
popd

Для поиска на диске D присвойте переменной source значение d:\

set source=d:\

clayton
21-01-2013, 23:54
Код:
@echo off
set source=c:\
pushd %source%||exit /b 1
for /f "delims=*" %%a In ('dir /b /s /ad "delWar 1"') do rd /s /q "%%~dpadelWar 1"
popd
Для поиска на диске D присвойте переменной source значение d:\
Код:
set source=d:\ »

именно так, а местоположение бат значение имеет? не удаляет к сожалению...

zion87
22-01-2013, 00:21
нет вы меня не верно поняли, ну ладно вот так ищем на всех дисках

@echo off
for %%z in (c d e f g h i j k l m n o p q r s t u v w x y z) do call :next %%z
goto:eof
:next
set source=%1:\
pushd %source%||exit /b 1
for /f "delims=*" %%a In ('dir /b /s /ad "delWar 1"') do rd /s /q "%%~dpadelWar 1"
popd

clayton
22-01-2013, 00:35
@echo off
for %%z in (c d e f g h i j k l m n o p q r s t u v w x y z) do call :next %%z
goto:eof
:next
set source=%1:\
pushd %source%||exit /b 1
for /f "delims=*" %%a In ('dir /b /s /ad "delWar 1"') do rd /s /q "%%~dpadelWar 1"
popd »

с C удаляет, с D не удаляет :)

zion87
22-01-2013, 00:38
есть русские символы в пути на диске D?

clayton
22-01-2013, 00:42
папка лежит в корне D:\delWar 1

zion87
22-01-2013, 01:36
понял в чём проблема
если папка "delWar 1" в корне диска то искать ее надо так

'dir /ad "delWar 1"'

а если глубже то так

'dir /b /s /ad "delWar 1"'



@echo off
for %%z in (c d e f g h i j k l m n o p q r s t u v w x y z) do call :next %%z
goto:eof
:next
set source=%1:\

rd /s /q "%source%delWar 1"

pushd %source%||exit /b 1
for /f "delims=*" %%a In ('dir /b /s /ad "delWar 1"') do rd /s /q "%%~dpadelWar 1"
popd

не очень элегантно но сработает ...

clayton
22-01-2013, 04:21
спасибо, эстетичность кода не могу оценить, но задачу выполняет отлично!




© OSzone.net 2001-2012