Компьютерный форум 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=286610)

luda-chel 17-08-2014 14:37 2390386

Найти и удалить папку.
 
Здравствуйте ВСЕМ!
Подскажите как создать bat файл на тему:
Есть на диске папка C:\User - в ней много всего(папок, файлов). Нужно среди этого всего найти папки VB_1, VB_2, VB_INF и т.д. и удалить их вместе с содержимым.
пробовала так, но какая то ерунда выходит:

Echo off
FOR /D %%i IN ("C:\User\VB_*" ) DO RD "%%i" /S /Q
FOR /F "usebackq delims=" %%j IN ('Dir "C:\User\" /S /B /A:D') DO FOR /D %%i IN ("%%j\VB_*" ) DO RD "%%i" /S /Q

luda-chel 17-08-2014 15:48 2390405

Что то не получается. Пишет что системе не удается найти путь. Системе не удается найти указанный файл.

Georgio 17-08-2014 15:57 2390408

Код:

@echo off
cd /d "C:\User"
for /f "delims=" %%i in ('
"dir /ad/b/s "VB_*" 2>nul"
') do (
 rd "%%i" /s/q
 )
exit /b


luda-chel 17-08-2014 16:28 2390422

Georgio, я пробую Ваш код. После выполнения bat файла: Системе не удается найти путь. Системе не удается найти указанный файл.

luda-chel 17-08-2014 16:52 2390433

Georgio, rd "%%i" /s/q - увидела!
Теперь только пишет: Системе не удается найти указанный путь.
Может как то "VB_*" - не так пишется.
хотя даже если указываю конкретно папку VB_1 - которая реально есть, батник не срабатывает.

Georgio 17-08-2014 17:01 2390438

luda-chel, а Вы не перепутали название папки? Может быть, она называется «Users», а не «User»?

Код:

@echo off
cd /d "C:\Users"
for /f "delims=" %%i in ('
"dir /ad/b/s "VB_*" 2>nul"
') do (
 rd "%%i" /s/q
 )
exit /b


luda-chel 17-08-2014 17:51 2390461

Georgio, нет конечно! Мне вообще нужно для работы, куча терминальных серверов. Пользователи выходят из программы и запускается батник, который подчищает эти папки (их на самом деле не только VB_*, INF_*, и т.д. от программы зависит. Но иногда бывает, что не правильно выходят или принудительно, то папки их остаются. Т.Е. на диске C:\User - именно так, потому что есть C:\Users - и там эти же файлы необходимеые для работы сервера. А сейчас я дома, и создала у себя просто примерно (сами понимаете)....хотелось за выходные решить задачу. в инете не сомгла ничего найти.

Georgio 17-08-2014 18:46 2390480

luda-chel, если, например, в папке «VB_INF» имеются подпапки «VB_1» и «VB_2», то после удаления папки «VB_INF» со всем её содержимым пакетный файл пытается удалить уже отсутствующие подпапки «VB_1» и «VB_2», но не обнаружив их, выдаёт сообщение об ошибке: «Системе не удается найти указанный путь.». Это нормально для такой операции. Просто не выводите на экран это сообщение, а сделайте так:

Код:

@echo off
cd /d "C:\User"
for /f "delims=" %%i in ('
"dir /ad/b/s "VB_*" 2>nul"
') do (
 rd "%%i" /s/q 2>nul&& echo %%i -- yes|| echo %%i -- no
 )
pause>nul
exit /b

и напишите, что получилось.

luda-chel 17-08-2014 19:27 2390490

Ага. поняла Вашу мысль. Дело в том что в папке VB: папки "разные",к тому же файлы разные(exe, bat....). Это по существу. А сейчас у себя на ПК. просто создала папку на диске C:\User (до этого как и писала, была папка только Users, стоит 8.1-ка ОС)/После выполнения вашего скрипта:
(я через FAR смотрю)^
C:\>1.bat
C:\User\1-копия\1\2\VB_Inf800 --no
С:\User\1-копия(2)\VB_1--no
(папки: 1-копия\ и всякую ерунду просто создала для того чтобы проверить чтоб в глубине других папок он удалил VB)
НО,,,,,,
после того как я изменила название папок "1-копия" просто на 1 и 2.
то следующее:

---yes
--yes

теперь работает. без папок с русскими буквами.

Теперь в любых вариантах работает!!!

luda-chel 17-08-2014 19:54 2390500

:yahoo:


Время: 05:00.

Время: 05:00.
© OSzone.net 2001-