Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах

Модерирует : KLASS, IFkO

vu1tur (14-11-2006 16:59): http://forum.ru-board.com/topic.cgi?forum=62&topic=9040  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

   

hacsoft

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Задачи на bat-файлах
Вопросы, задачи и их решения по работе с командными файлами, а также сопутствующие ссылки.
 
Смежные темы:
В помощь системному администратору » Автоматизация администрирования
Программы » Командная строка, батники\сценарии
 
Полезные ссылки:
· Cmd. Описание от разработчиков
· Набор GNU утилит для win32
· Встроенный справочник по командам: hh ntcmds.chm
· Пакет утилит для организации интерфейса в bat-файлах
· Использование ansi.sys
· cmdow — изменение параметров и видимости дос-окна
· blat — отправка почты из консоли
 
Готовые решения и частые вопросы:
· Создание листинга директорий на примере создания плейлиста
· Разименовывание переменных
· Переименовывание файлов по дате создания
· Запуск сетевого подключения
· Запуск bat файлов как сервис
· Пример выполнения команд по результату команды ping
· Использование даты на день раньше чем сегодня
 
Невозможности — что нельзя сделать с помощью командных файлов:
· изменть конфигурацию IP на удаленной машине (без помощи rcmd.exe) [добавил ALEF]
 
 
Дополняем шапку: добавляем готовые решения, полезные ссылки.
 
Примечание: Большие куски кода заключайте в тэг [more]  
 
Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!!
 
Старая версия первого сообщения

Всего записей: 116 | Зарегистр. 18-11-2005 | Отправлено: 22:58 18-11-2005 | Исправлено: Elroir, 05:50 11-11-2006
Smitis



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
GreaseOD
По редактору SED:
http://www.arm.kiev.ua/doc/sed_awk/sed.txt
http://www.csa.ru/CSA/tutor/sed.htmr






Не надо портить ссылки. Исправлено.

Всего записей: 3392 | Зарегистр. 09-02-2003 | Отправлено: 10:58 24-08-2006 | Исправлено: evle, 11:39 24-08-2006
NightBowl



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ViSiToR

Цитата:
Есть такой вопрос - Как в Win98, показать на экран последние символы переменной без путей?  

Программирование на чистом бате под DOS-ME это песня. Вот пример чистого бат файла который делит по буквам строки, подаваемые как параметр командной строки. Работает под DOS-ME , под XP запускать так: COMMAND /C SPLITPAR SPLITME Если разберешься как оно работает, то вполне сможешь адаптировать его для своей задачи. Только у этого варианта много ограничений. Хотя очень нетривиальное и красивое решение. Есть еще в природе два варианта - один простой работает только под DOS 3.30-6.22 - другой зубодробительный как-то через команду del, но неизящный.
Smitis

Цитата:
Без сторонних средств ограничения COMMAND.COM не обойти.

В достаточно примитивных случаях вполне можно обрабатывать как строки так и текстовые файлы без сторонних средств - только средствами COMMAND.COM!

Всего записей: 309 | Зарегистр. 25-11-2003 | Отправлено: 11:27 24-08-2006
bredonosec



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Smitis

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

Всего записей: 16269 | Зарегистр. 13-02-2003 | Отправлено: 15:18 24-08-2006
Serge2005

Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Добрый вечер!
Помогите, пожалуйста: есть много (сотни) файлов формата: YYMM_DD__HH-MM-SS__name.JPG. name - любой набор символов любой длины. Остальная часть - дата и время (вытащенные из EXIF). Можно ли массово "изменять время" на всех этих файлах? Например прибавить 42 минуты 35 секунд? Очень нужно.....пожалуйтса. Осталось мало времени, а врючную уж очень сложно.....

Всего записей: 555 | Зарегистр. 11-02-2006 | Отправлено: 20:18 24-08-2006
xitsa



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ViSiToR

Цитата:
По поводу sed'а, - Возможно с его помощью, взять из текстового файла все строчки которые являются ссылками, и вписать их всех подряд в другой файл? Т.е, нужно в определённом файле, найти все строчки в которых есть нчало ссылки httр://, и всё что идёт после такого начала (после сочетания таких символов), нужно вписать как отдельную строчку в другой-новый файл. И также для все строчек в этом файле... вот пример содержания некоторых строчек в таком файле:    URL=httр://ссылка  что-то написанно, но не важно что...  URL=httр://другая ссылка    Вот нужно взять переписать в другой текстовый файл, только строчки httр://ссылка и httр://другая ссылка... в принципе, каждая строчка содержащая ссылку, начинается с URL= И если трудно отделить это начало от остальной ссылки, то можно всю строку вписать в файл - но было бы неплохо отдельно ссылки.

 
Возможно. Если особенно у тебя действительно один линк на строку:
f.sed:

Код:
 
/^ *URL= *htt/{
s/^ *URL= *//
p
}
 

Команда:

Код:
 
ssed -n -f f.sed input.txt >output.txt
 

Всего записей: 103 | Зарегистр. 25-04-2006 | Отправлено: 23:01 24-08-2006 | Исправлено: xitsa, 23:42 24-08-2006
Kirillhome



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Serge2005
Не красиво, но сделал...
 
Смотрите...

Всего записей: 426 | Зарегистр. 23-11-2004 | Отправлено: 23:20 24-08-2006 | Исправлено: Kirillhome, 23:21 24-08-2006
Serge2005

Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Kirillhome
Спасибо...но я не понимаю, что нужно сделать, чтоб он заработал.....Либо какие входящие атрибуты надо вписать? Либо где внутри надо изменить циффры? И точно здесь учитывается различное окончание вместо "name"?
Этот скрипт перебирает все файлы в папке, где лежит?

Всего записей: 555 | Зарегистр. 11-02-2006 | Отправлено: 23:29 24-08-2006
xitsa



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
GreaseOD
Вот еще есть страничка на которой много полезных скриптов и FAQ'ов по sed'у
tutorial.
Она на английском, но сам многое почерпнул оттуда

Всего записей: 103 | Зарегистр. 25-04-2006 | Отправлено: 23:30 24-08-2006 | Исправлено: xitsa, 23:31 24-08-2006
Serge2005

Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Где изменять цифры - нашел Минуты и секунды. А можно их с минусом, чтоб вычиталось? 60 минут - вычтет час? И та и та переменная от 0 до 60? Или до бесконечности?
Извините, я плохо еще разбираюсь в батниках...
 
Добавлено:
Увидел, конец имени любой
 
Добавлено:
Понял! При копировании из браузера в конец строчек добавились пробелы! Спасибо! Все прекрасно!!! Спасибо Большущее!!!!! %)
 
Добавлено:
Для часов и дней попробуя сам написать.....
А потом еще на вычитание времени (*кажется просто знак поменять, но ведь не прокатит!*)
Спасибо большое! Не думаю, что сам скоро справлюсь с полной задачей, буду совсем совсем благодарен за полный код...

Всего записей: 555 | Зарегистр. 11-02-2006 | Отправлено: 23:32 24-08-2006
Kirillhome



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Serge2005
Собственно, было разобрано начало файла на составляющие YY DD MM HH MM SS
были заданы ещё две переменные (для сдвига минут и секунд)
Потом проверяется - не првышают ли полученные значения те, которые реально могут быть.
Время в сутках принято равным от 00:00:00 до 23:59:59.
Високосные года - не учитываются.
Был вынужден использовать двойное переименование (почему и сказал, что - нехорошо...), т.к. выполнение команды DIR "подхватывало" и новые файлы....
В последних строках добивался того, что бы цифры были в виде двух знаков.
 
Добавлено:
При вычитании надо будет использовать другие проверки....

Всего записей: 426 | Зарегистр. 23-11-2004 | Отправлено: 00:37 25-08-2006
ViSiToR



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
xitsa

Цитата:
Возможно. Если особенно у тебя действительно один линк на строку:

 
У меня все линк и в файле, начинаются так URL=http://ссылка...
 
А как это применять? команду ставлю в батник, но ничего не переписывается, просто создаётся пустой файл output.txt и всё... а что такое f.sed: куда это прописывать? пробовал в батник, но не помогло.
 
Добавлено:
xitsa
 
Всё, разобрался - нужно было сделать файл f.sed, с содержимым что ты привёл в пример, а также, я не учёл тот факт, что у меня все ссылки (т.е символы URl=) находились с отступом от края строчки... так что всё теперь работает (подправил f.sed), большое спасибо!

----------
ViSiToR a.k.a CreatoR
CreatoR это не ник, CreatoR это стиль жизни!

Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 09:59 25-08-2006
01MDM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
1. Как проверить запущена служба или нет
Например schedule.
 
Конечно можно просто на всякий случай ее запустить или перезапустить, но хотелось бы покрасивее. Если служба запущена - продолжаем, если нет запускаем службу и продолжаем.
 
Интересует само условие.
 
2. Как спрятать вывод команды при запуске/останове службы. > nul не работает
 
Добавлено:
Или как узнать о существовании процесса? По аналогии `ps`. Может есть какие-нибудь программы с консольным интерфейсом.

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 12:17 25-08-2006
GOODmen



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Подскажите, как решить такую задачу - нужно выдернуть из АД некоторые группы и их пользователей с последующим сохранением в файл в красивом виде для печати?

Всего записей: 366 | Зарегистр. 15-01-2004 | Отправлено: 13:16 25-08-2006
nitrax



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день.
 
Подскажите как запустить инсталяцию из батника, подождать завершения инсталяции и запустить другую инсталяцию.
 
Спасибо.

Всего записей: 21 | Зарегистр. 24-01-2006 | Отправлено: 13:34 25-08-2006
peculiar



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
У меня тот  же вопрос как в XP/2003 прописать паузу к примеру на 40 секунд после первой команды. Задача такая одним батником по сети включит удаленный комп и после того как о включится - это примерно 40 сек - скопировать на него резервную копию. Дык вот никак не получается приостановить выполнение BAT файла после первой задачи. Как можно это решить ?
 
P.S. нашел решение своему вопросу -  
#  
утилита работает так : задаете время сколько надо на приостановление и все !
Удачки

Всего записей: 460 | Зарегистр. 09-12-2005 | Отправлено: 16:41 25-08-2006 | Исправлено: peculiar, 17:22 25-08-2006
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
peculiar
Sleep /?

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 16:51 25-08-2006
Serge2005

Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Kirillhome
Увеличение времени:Подробнее...
 
Уменьшение времени:Подробнее...
Вроде работает, но я не уверен в правильности.....
И еще....при копировании с форума появляются пробелы в конце каждой строчки...

Всего записей: 555 | Зарегистр. 11-02-2006 | Отправлено: 16:53 25-08-2006
RussianNeuroMancer



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
nitrax

Код:
 
Setup1.exe
Setup2.exe
 

 
KapralBel
Цитата:
Sleep /?
Пишет, что нет такой команды.


----------
Kubuntu - официальный сайт, форум, русскоязычный сайт.

Всего записей: 9403 | Зарегистр. 30-04-2005 | Отправлено: 16:55 25-08-2006
nitrax



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Да я так и делал, но появляется 2 запущенных инстяляшки одновременно.

Всего записей: 21 | Зарегистр. 24-01-2006 | Отправлено: 16:58 25-08-2006
Kirillhome



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Serge2005

Цитата:
И еще....при копировании с форума появляются пробелы в конце каждой строчки...
 

Об этом писалось в начале топика. Мне казалось, что это даже есть в шапке....
 
С увеличением, похоже, всё верно, а с уменьшением - надо менять

Код:
 
if %f_Month%==1 (Set /A Max_Day=31)
if %f_Month%==2 (Set /A Max_Day=28)
if %f_Month%==3 (Set /A Max_Day=31)
if %f_Month%==4 (Set /A Max_Day=30)
if %f_Month%==5 (Set /A Max_Day=31)
if %f_Month%==6 (Set /A Max_Day=30)
if %f_Month%==7 (Set /A Max_Day=31)
if %f_Month%==8 (Set /A Max_Day=31)
if %f_Month%==9 (Set /A Max_Day=30)
if %f_Month%==10 (Set /A Max_Day=31)
if %f_Month%==11 (Set /A Max_Day=30)
if %f_Month%==12 (Set /A Max_Day=31)
 

на  

Код:
 
if %f_Month%==1 (Set /A Max_Day=31)
if %f_Month%==2 (Set /A Max_Day=31)
if %f_Month%==3 (Set /A Max_Day=28)
if %f_Month%==4 (Set /A Max_Day=31)
if %f_Month%==5 (Set /A Max_Day=30)
if %f_Month%==6 (Set /A Max_Day=31)
if %f_Month%==7 (Set /A Max_Day=30)
if %f_Month%==8 (Set /A Max_Day=31)
if %f_Month%==9 (Set /A Max_Day=31)
if %f_Month%==10 (Set /A Max_Day=30)
if %f_Month%==11 (Set /A Max_Day=31)
if %f_Month%==12 (Set /A Max_Day=30)
 

т.к. без изменения - от 1-го февраля отнять один день будет получится 28 января, а от 1-го марта - 31 февраля, что не правильно
 
Добавлено:
Нет, не правильно...
При "резком" изменении числа месяцев должен быть другой алгоритм (я учитывал, что месяц сдвигается максимум на единицу)...
 
Добавлено:
И я не знаю как решить эту задачу в общем плане...
К примеру - 31 января плюс месяц - чему будет равно??? (28 (29) февраля, 3 (2) марта)???

Всего записей: 426 | Зарегистр. 23-11-2004 | Отправлено: 17:13 25-08-2006 | Исправлено: Kirillhome, 17:35 25-08-2006
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах
vu1tur (14-11-2006 16:59): http://forum.ru-board.com/topic.cgi?forum=62&topic=9040


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru