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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Хочу все знать (http://forum.oszone.net/forumdisplay.php?f=23)
-   -   Bat-файл (http://forum.oszone.net/showthread.php?t=32569)

dallas 14-01-2003 11:34 221949

Проблема такая: необходимо написать бат-файлик, который бы чистил директории.
Директории Station_1,...,Station_28 надо удалить все их содержимое.
Как это сделать?
Удалить, а потом создать заново к сожалению нельзя... нужно именно очистить.

SANtana 14-01-2003 11:45 221950

могу предложить такой вариант, хотя не исключено, что кто-то предложит лучше.
в бантнике прописываешь:

Цитата:

cd c:\Station_1
del *.*
cd c:\Station_2
del *.*
......
cd c:\Station_28
del *.*
Хотя прийдется каждый раз топтать клавишу Y

wolf 14-01-2003 11:57 221951

SANtana
Не придется, если:
del *.*  /y

dallas 14-01-2003 12:00 221952

Ребята это же только файлы....
а подкаталоги.....

SANtana 14-01-2003 12:05 221953

wolf
у del нет ключа /y
dallas
тогда вместо del набираешь erase

wolf 14-01-2003 12:10 221954

SANtana
Действительно... хм...
Правда erase dallas'у не поможет...
Млин, как-же я делал?
Вспомню - скажу... (если вспомню)...

SANtana 14-01-2003 12:21 221955

сорри, торможy erase тоже сaмое что и del.
комaндa yдaления директории rd, но нyжно знaть название директории.

dallas 14-01-2003 13:02 221956

Да в том то и дело....
Там надо как-то получить список всех поддиректорий, а потом поочереди все поудалять
Как это сделать я не знаю
В инете чтото тоже похожего ничего не смог найти
Может кто такое уже делал?

Step 14-01-2003 19:10 221957

dallas
А почему не прокатит удаление/создание заново директорий?

SANtana 14-01-2003 19:20 221958

Цитата:

удаление/создание
в принципе тоже вариант.
Но команда rd не позволяет удалять непустые папки, следовательно удалять их прийдется из винды, а потом можно запустить батник по созданию папок:
Цитата:

md c:\Station_1
md c:\Station_2
......
md c:\Station_28

APOSTOL 14-01-2003 23:31 221959

Где-то тут же, на Форуме предлагался финт ушами:

1. Создаешь папку целиком со своим деревом Station_1,...,Station_28 (пустые).
2. Делаешь её дубль в другом месте как пустой шаблон.
3. Когда нужно удалить содержимое базовой папки - удаляешь её просто целиком, а на её место копируешь пустой шаблон.

dallas 15-01-2003 10:26 221960

Я сначала так с сделал: написал батник который в цикле удалял все папки Station_1 ... Station_28, а потом их заново создавал. Но проблема в другом: эти папки на линуксовом серваке находятся, соответственно при удалении и создании заново права на эти папки прописываются тому пользователю, который этот батник запустил и юзеры со своих компов зайти не могут.
Поэтому надо что бы он все содержимое очищал.

Текст моего старого файлика:
FOR /F  %%i in (hosts) do rd c:\user\%%i /q /s
FOR /F  %%i in (hosts) do md c:\user\%%i
В файле hosts по строкам все станции прописаны.

До боли просто, но вот как сделать чтобы сами папки не удалялись????

Guest 21-06-2004 12:38 221961

=========
Если Винда на основе NT
=== RD ===
FOR /R [[диск:]путь] %переменная IN (набор) DO команда [параметры]
   Выполнение команды для каталога [диск:]путь, а также для всех
   подкаталогов этого пути.  Если после ключа /R не указано имя каталога,
   выполнение команды начинается с текущего каталога.
   Если вместо набора указана только точка (.), команда выводит список
   всех подкаталогов.

Пробежались по подкаталогам и все ненужное удалили.

============
Если Винда 9x
=== DelTree ===
DelTree [/y] [диск:]путь
  /y удалять без подтверждения



Время: 21:11.

Время: 21:11.
© OSzone.net 2001-