Показать полную графическую версию : Bat-файл
Проблема такая: необходимо написать бат-файлик, который бы чистил директории.
Директории Station_1,...,Station_28 надо удалить все их содержимое.
Как это сделать?
Удалить, а потом создать заново к сожалению нельзя... нужно именно очистить.
могу предложить такой вариант, хотя не исключено, что кто-то предложит лучше.
в бантнике прописываешь:
cd c:\Station_1
del *.*
cd c:\Station_2
del *.*
......
cd c:\Station_28
del *.*
Хотя прийдется каждый раз топтать клавишу Y
SANtana
Не придется, если:
del *.* /y
Ребята это же только файлы....
а подкаталоги.....
wolf
у del нет ключа /y
dallas
тогда вместо del набираешь erase
SANtana
Действительно... хм...
Правда erase dallas'у не поможет...
Млин, как-же я делал?
Вспомню - скажу... (если вспомню)...
сорри, торможy erase тоже сaмое что и del.
комaндa yдaления директории rd, но нyжно знaть название директории.
Да в том то и дело....
Там надо как-то получить список всех поддиректорий, а потом поочереди все поудалять
Как это сделать я не знаю
В инете чтото тоже похожего ничего не смог найти
Может кто такое уже делал?
dallas
А почему не прокатит удаление/создание заново директорий?
удаление/создание
в принципе тоже вариант.
Но команда rd не позволяет удалять непустые папки, следовательно удалять их прийдется из винды, а потом можно запустить батник по созданию папок:
md c:\Station_1
md c:\Station_2
......
md c:\Station_28
Где-то тут же, на Форуме предлагался финт ушами:
1. Создаешь папку целиком со своим деревом Station_1,...,Station_28 (пустые).
2. Делаешь её дубль в другом месте как пустой шаблон.
3. Когда нужно удалить содержимое базовой папки - удаляешь её просто целиком, а на её место копируешь пустой шаблон.
Я сначала так с сделал: написал батник который в цикле удалял все папки 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 по строкам все станции прописаны.
До боли просто, но вот как сделать чтобы сами папки не удалялись????
=========
Если Винда на основе NT
=== RD ===
FOR /R [[диск:]путь] %переменная IN (набор) DO команда [параметры]
Выполнение команды для каталога [диск:]путь, а также для всех
подкаталогов этого пути. Если после ключа /R не указано имя каталога,
выполнение команды начинается с текущего каталога.
Если вместо набора указана только точка (.), команда выводит список
всех подкаталогов.
Пробежались по подкаталогам и все ненужное удалили.
============
Если Винда 9x
=== DelTree ===
DelTree [/y] [диск:]путь
/y удалять без подтверждения
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.