Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
vtkachev
Зарегистрирован: 22.09.2006 Сообщения: 31 Откуда: Киев
|
Добавлено: Ср Окт 11 2006 15:22 Заголовок сообщения: Как правильно написать Bat файл |
|
|
Доброго времени суток. Подскажите, пожалуйста как написать Bat файл... Задача такова: батник должен удалять все директории в указанной папке, но не ее саму. Большое спасибо! |
|
Вернуться к началу |
|
|
4u3u
Зарегистрирован: 24.01.2003 Сообщения: 997 Откуда: Moscow
|
Добавлено: Ср Окт 11 2006 16:12 Заголовок сообщения: |
|
|
Можно подойти к задаче с двух сторон:
1. Удалить директорию со всем содержимым, а затем создать ее заново.
или
2. Использовать вывод команд dir для удаления поддиректорий.
Последний раз редактировалось: 4u3u (Ср Окт 11 2006 16:29), всего редактировалось 1 раз |
|
Вернуться к началу |
|
|
4u3u
Зарегистрирован: 24.01.2003 Сообщения: 997 Откуда: Moscow
|
Добавлено: Ср Окт 11 2006 16:27 Заголовок сообщения: |
|
|
Код: | @echo off
setlocal
:: Корневая папка
set root=c:\temp\testroot
:: Удаляем все файлы в корневой папке
del /f /q %root%\*
::Удаляем все подпапки
for /f "delims=" %%i in ('dir /b /ad %root%') do (
rd /s /q %root%\%%i
) |
Последний раз редактировалось: 4u3u (Пт Окт 13 2006 10:26), всего редактировалось 1 раз |
|
Вернуться к началу |
|
|
tatlink
Зарегистрирован: 19.05.2005 Сообщения: 361 Откуда: Уфа
|
Добавлено: Пт Окт 13 2006 07:51 Заголовок сообщения: |
|
|
а как решить такую задачу:
надо переписать(скопировать) файлы с одной директории в другую _________________ Хочешь знать правду? Читай таблицу умножения. |
|
Вернуться к началу |
|
|
a-m-d
Зарегистрирован: 09.09.2004 Сообщения: 1498 Откуда: SPb
|
Добавлено: Пт Окт 13 2006 08:19 Заголовок сообщения: |
|
|
Или условие сильно недосказанное, или смотрим
xcopy /?
ПЫСЫ или хочешь, чтобы 4u3u еще какой-нибудь хитрый скрипт показал? _________________ Век живи - век учись!.. Дураком помрёшь. |
|
Вернуться к началу |
|
|
WolfFear
Зарегистрирован: 29.09.2006 Сообщения: 233 Откуда: Владивосток
|
Добавлено: Пт Окт 13 2006 08:22 Заголовок сообщения: |
|
|
Да народ, а есть какая нить литература по батникам? ну то есть как создавать, я конечно делал, но у меня фуфло получалось, а нада непосредственно что бы они обращались к текущему каталогу где установленна ОСь _________________ Сисадмин это не профессия, а половая ориентация |
|
Вернуться к началу |
|
|
tatlink
Зарегистрирован: 19.05.2005 Сообщения: 361 Откуда: Уфа
|
Добавлено: Пт Окт 13 2006 10:11 Заголовок сообщения: |
|
|
WolfFear писал(а): | Да народ, а есть какая нить литература по батникам? ну то есть как создавать, я конечно делал, но у меня фуфло получалось, а нада непосредственно что бы они обращались к текущему каталогу где установленна ОСь |
да кстате хотелось бы почитать.. посмотреть ознакомиться...
ссылочку б.. _________________ Хочешь знать правду? Читай таблицу умножения. |
|
Вернуться к началу |
|
|
4u3u
Зарегистрирован: 24.01.2003 Сообщения: 997 Откуда: Moscow
|
Добавлено: Пт Окт 13 2006 10:26 Заголовок сообщения: |
|
|
Кстати, "delims=" забыл, иначе папки с пробелами в именах не будут удаляться. Сейчас подправлю... |
|
Вернуться к началу |
|
|
4u3u
Зарегистрирован: 24.01.2003 Сообщения: 997 Откуда: Moscow
|
Добавлено: Пт Окт 13 2006 10:36 Заголовок сообщения: |
|
|
WolfFear писал(а): | а нада непосредственно что бы они обращались к текущему каталогу где установленна ОСь |
Для этого существуют переменные окружения. Для тебя подойдут переменные %SYSTEMROOT%, %WINDIR% и %SYSTEMDRIVE%. Полный список можно посмотреть командой SET
Цитата: | есть какая нить литература по батникам? | Литературы полно. Но мне лично было достаточно встроенной справки Windows, обширной практики, и чужих батников :-) Просто берешь батник и начинаешь построчно разбирать, что он делает, обращаясь к справочнику по командам или просто выполняя КОМАНДА /? в командной строке. Только есть пара особенностей:
1. Методы работы с переменными окружения описаны в справке по команде SET (SET /?) - обычно народ с трудом находит, где же именно прочитать про работу с переменными
2. Также много полезной информации в справке команды FOR (FOR /?). Это вообще одна из самых мощных и полехных команд.
Справка Windows по командной строке:
http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/ntcmds_o.mspx?mfr=true
или
Start > Run > %windir%\help\ntcmds.chm |
|
Вернуться к началу |
|
|
grf
Зарегистрирован: 05.04.2005 Сообщения: 1242 Откуда: Москва
|
Добавлено: Пт Окт 13 2006 10:46 Заголовок сообщения: |
|
|
а чего втроенная справка уже не работает?
http://www.winfaq.com.ru/ _________________ Errare humanum est |
|
Вернуться к началу |
|
|
WolfFear
Зарегистрирован: 29.09.2006 Сообщения: 233 Откуда: Владивосток
|
Добавлено: Пн Окт 16 2006 00:50 Заголовок сообщения: |
|
|
Всем спасибо, но про это я знаю SET/? и как получить справку виндовоза, а хотелось бы именно литературу о написании сложных батников, обращение к каталогам, перемещение, удаление, копирование и т.п. Можно ли написать достаточно продуктивный бат - файл используя только файл справки виндовоза? _________________ Сисадмин это не профессия, а половая ориентация |
|
Вернуться к началу |
|
|
4u3u
Зарегистрирован: 24.01.2003 Сообщения: 997 Откуда: Moscow
|
|
Вернуться к началу |
|
|
4u3u
Зарегистрирован: 24.01.2003 Сообщения: 997 Откуда: Moscow
|
Добавлено: Вт Окт 17 2006 00:58 Заголовок сообщения: |
|
|
Кстати, по исходной проблеме есть значительно более простое решение: Нужно просто сначала сделать корневую директорию текущей. В этом случае RD просто не сможет ее саму удалить, только ее содержимое.
Код: | @echo off
setlocal
:: Корневая папка
set root=c:\temp\test
:: Финт ушами
pushd %root%
:: Удаляем все сожержимое папки
rd /s /q %root% >nul 2>&1
:: Финт обратно
popd |
Век живи - век учись... |
|
Вернуться к началу |
|
|
WolfFear
Зарегистрирован: 29.09.2006 Сообщения: 233 Откуда: Владивосток
|
Добавлено: Вт Окт 17 2006 01:06 Заголовок сообщения: |
|
|
Всем спасибо за помощь _________________ Сисадмин это не профессия, а половая ориентация |
|
Вернуться к началу |
|
|
|