PDA

Показать полную графическую версию : Bat-файл


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

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

cd c:\Station_1
del *.*
cd c:\Station_2
del *.*
......
cd c:\Station_28
del *.*

Хотя прийдется каждый раз топтать клавишу Y

wolf
14-01-2003, 11:57
SANtana
Не придется, если:
del *.*  /y

dallas
14-01-2003, 12:00
Ребята это же только файлы....
а подкаталоги.....

SANtana
14-01-2003, 12:05
wolf
у del нет ключа /y
dallas
тогда вместо del набираешь erase

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

SANtana
14-01-2003, 12:21
сорри, торможy erase тоже сaмое что и del.
комaндa yдaления директории rd, но нyжно знaть название директории.

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

Step
14-01-2003, 19:10
dallas
А почему не прокатит удаление/создание заново директорий?

SANtana
14-01-2003, 19:20
удаление/создание
в принципе тоже вариант.
Но команда rd не позволяет удалять непустые папки, следовательно удалять их прийдется из винды, а потом можно запустить батник по созданию папок:
md c:\Station_1
md c:\Station_2
......
md c:\Station_28

APOSTOL
14-01-2003, 23:31
Где-то тут же, на Форуме предлагался финт ушами:

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

dallas
15-01-2003, 10:26
Я сначала так с сделал: написал батник который в цикле удалял все папки 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
=========
Если Винда на основе NT
=== RD ===
FOR /R [[диск:]путь] %переменная IN (набор) DO команда [параметры]
   Выполнение команды для каталога [диск:]путь, а также для всех
   подкаталогов этого пути.  Если после ключа /R не указано имя каталога,
   выполнение команды начинается с текущего каталога.
   Если вместо набора указана только точка (.), команда выводит список
   всех подкаталогов.

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

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




© OSzone.net 2001-2012