Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Найти и удалить папку (http://forum.oszone.net/showthread.php?t=251963)

clayton 21-01-2013 01:19 2071373

Найти и удалить папку
 
Приветствую, примерно так:

Код:

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 2071513

Код:

@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 2071615

Спасибо!

clayton 21-01-2013 20:23 2071915

в D не ищет к сожалению, если изменить раздел, консоль появляется на секунду...

zion87 21-01-2013 23:36 2072009

Код:

@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 2072020

Цитата:

Цитата zion87
Код:
@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 2072032

нет вы меня не верно поняли, ну ладно вот так ищем на всех дисках
Код:

@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 2072035

Цитата:

Цитата zion87
@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 2072038

есть русские символы в пути на диске D?

clayton 22-01-2013 00:42 2072039

папка лежит в корне D:\delWar 1

zion87 22-01-2013 01:36 2072052

понял в чём проблема
если папка "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 2072082

спасибо, эстетичность кода не могу оценить, но задачу выполняет отлично!


Время: 07:48.

Время: 07:48.
© OSzone.net 2001-