Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Как правильно написать Bat файл

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Windows
Предыдущая тема :: Следующая тема  
Автор Сообщение
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 раз
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
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 раз
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
tatlink



Зарегистрирован: 19.05.2005
Сообщения: 361
Откуда: Уфа

СообщениеДобавлено: Пт Окт 13 2006 07:51    Заголовок сообщения: Ответить с цитатой

а как решить такую задачу:
надо переписать(скопировать) файлы с одной директории в другую
_________________
Хочешь знать правду? Читай таблицу умножения.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
a-m-d



Зарегистрирован: 09.09.2004
Сообщения: 1498
Откуда: SPb

СообщениеДобавлено: Пт Окт 13 2006 08:19    Заголовок сообщения: Ответить с цитатой

Или условие сильно недосказанное, или смотрим
xcopy /?


ПЫСЫ или хочешь, чтобы 4u3u еще какой-нибудь хитрый скрипт показал? Smile
_________________
Век живи - век учись!.. Дураком помрёшь.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
WolfFear



Зарегистрирован: 29.09.2006
Сообщения: 233
Откуда: Владивосток

СообщениеДобавлено: Пт Окт 13 2006 08:22    Заголовок сообщения: Ответить с цитатой

Да народ, а есть какая нить литература по батникам? ну то есть как создавать, я конечно делал, но у меня фуфло получалось, а нада непосредственно что бы они обращались к текущему каталогу где установленна ОСь
_________________
Сисадмин это не профессия, а половая ориентация
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
tatlink



Зарегистрирован: 19.05.2005
Сообщения: 361
Откуда: Уфа

СообщениеДобавлено: Пт Окт 13 2006 10:11    Заголовок сообщения: Ответить с цитатой

WolfFear писал(а):
Да народ, а есть какая нить литература по батникам? ну то есть как создавать, я конечно делал, но у меня фуфло получалось, а нада непосредственно что бы они обращались к текущему каталогу где установленна ОСь

да кстате хотелось бы почитать.. посмотреть ознакомиться...
ссылочку б..
_________________
Хочешь знать правду? Читай таблицу умножения.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
4u3u



Зарегистрирован: 24.01.2003
Сообщения: 997
Откуда: Moscow

СообщениеДобавлено: Пт Окт 13 2006 10:26    Заголовок сообщения: Ответить с цитатой

Кстати, "delims=" забыл, иначе папки с пробелами в именах не будут удаляться. Сейчас подправлю...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
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
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
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    Заголовок сообщения: Ответить с цитатой

Всем спасибо, но про это я знаюSmile SET/? и как получить справку виндовоза, а хотелось бы именно литературу о написании сложных батников, обращение к каталогам, перемещение, удаление, копирование и т.п. Можно ли написать достаточно продуктивный бат - файл используя только файл справки виндовоза?
_________________
Сисадмин это не профессия, а половая ориентация
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
4u3u



Зарегистрирован: 24.01.2003
Сообщения: 997
Откуда: Moscow

СообщениеДобавлено: Пн Окт 16 2006 14:55    Заголовок сообщения: Ответить с цитатой

Ну так а мы о чем говорим?

Вся информация о командах и синтаксисе bat/cmd файлов есть во встроенной справке. Остальное - это уже творчество, приемы работы. А их лучше всего изучать на живых примерах. О чем, собственно, я и говорил. В сети полно сайтов, в той или иной степени посвященных командным скриптам.

Например:
http://www.robvanderwoude.com/index.html
http://www.macalester.edu/~fines/batch_tricks.htm
http://www.jsifaq.com/
http://forum.sysadmins.ru/3/79925/
и так далее
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
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


Век живи - век учись...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
WolfFear



Зарегистрирован: 29.09.2006
Сообщения: 233
Откуда: Владивосток

СообщениеДобавлено: Вт Окт 17 2006 01:06    Заголовок сообщения: Ответить с цитатой

4u3u писал(а):

http://www.robvanderwoude.com/index.html
http://www.macalester.edu/~fines/batch_tricks.htm
http://www.jsifaq.com/
http://forum.sysadmins.ru/3/79925/


Всем спасибо за помощь Very Happy
_________________
Сисадмин это не профессия, а половая ориентация
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Windows Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...