Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1] 2  Все   Вниз
  Печать  
Автор Тема: Bat-файл  (Прочитано 35272 раз)
0 Пользователей и 1 Гость смотрят эту тему.
okela
Гость
« : 07-12-2005 11:21 » 

Помогите написать bat-файл запускающий сам себя раз в сутки, а использовать для этого нужно комманду for
С недеждой, Okela
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #1 : 07-12-2005 11:23 » 

файл не может сам себя запускать Улыбаюсь

поточнее и покрасочнее опиши задачу
Записан

okela
Гость
« Ответ #2 : 07-12-2005 11:34 » 

Задание именно такое, не больше не меньше, но поразмыслив над ним немного, делаю вывод:
нужно чтобы раз в сутки создавался txt-файл с текущей датой, причем файл должен быть один и тот же, только содержимое (дата) меняется.
С надеждой, okela
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #3 : 07-12-2005 11:51 » 

тогда дело обстоит так:

с батом тут связываться имхо лишне...

Нужна программа, которую либо сам запускаешь, либо в автозапуске сидит. Прога (по желанию,конечно) невидна и следит за временем. При смене суток - обновляет файл. Я могу попробовать сделать, но только завтра принесу (чичас занят) .
В какое время суток должен обновицца файл?
Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #4 : 07-12-2005 11:52 » 

а также имя и путь к файлу -?
Записан

okela
Гость
« Ответ #5 : 08-12-2005 07:30 » 

Время неважно. А важно, чтобы все-таки был батник, и ни какой-нибудь, а с коммандой for. в общем-то, я его сделала, но не работает он как надо, однако! а лыжи дальше не едут  Улыбаюсь
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #6 : 08-12-2005 08:28 » 

Улыбаюсь

батник, значит нуна... тады не знаю...

-------
а приведи код батника - мож разберусь ? Улыбаюсь
Записан

Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #7 : 08-12-2005 08:33 » 

bat-файл запускающий сам себя раз в сутки
такого не бывает

батник в студию!

help for помог?

создать текстовый файл с датой в техте:

 rem help date
date /t >file_name.ext

Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
PooH
Глобальный модератор

ru
Offline Offline
Пол: Мужской
... и можно без хлеба!


« Ответ #8 : 08-12-2005 11:40 » 

test.bat:

echo hello
sleep 86400
start test.bat
exit

не уверен не запускай!!!

вроде этого подойдет? но, чтобы sleep заработал на Винде (если он не работает) надо винду пропатчить Улыбаюсь (http://malektips.com/xp_dos_0002.html)

-----

мождно еще заюзать службы расписаний смотри help at
« Последнее редактирование: 08-12-2005 11:42 от PooH » Записан

Удачного всем кодинга! -=x[PooH]x=-
Dusk
Команда клуба

ru
Offline Offline
Пол: Мужской
Редкий, но веселый вид


« Ответ #9 : 09-12-2005 06:58 » 

А если батник прописать в автозагрузке виндов, а в нем следить новые сутки или нет, и если новые, то пересоздать текстовик... Другого выхода я не вижу....
Записан

Человек, сделавший хотя бы шаг к цели, сразу становится мишенью для всех отставших
Опыт - это то, что появляется сразу после того, как он был так необходим...
Бывают минуты, когда у тебя есть секунды, чтобы исправить деланное часами и не получить последствия на годы...
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #10 : 09-12-2005 07:44 » 

а комп может месяцами не выключацца Улыбаюсь

вот я , к примеру, на работе сейчас делаю прогу, которая должна (в идеале) годами работать Улыбаюсь
Записан

Dusk
Команда клуба

ru
Offline Offline
Пол: Мужской
Редкий, но веселый вид


« Ответ #11 : 09-12-2005 09:33 » 

Алексей1153, есть условие, что используется именно батник, другого способа я просто не знаю.... Если кто и скажет запускать автоматом батник, то я буду тоже очень рад... Правда можно его запускать планировщиком задач, но это использование другой проги, что запрещено задачей...
Записан

Человек, сделавший хотя бы шаг к цели, сразу становится мишенью для всех отставших
Опыт - это то, что появляется сразу после того, как он был так необходим...
Бывают минуты, когда у тебя есть секунды, чтобы исправить деланное часами и не получить последствия на годы...
PooH
Глобальный модератор

ru
Offline Offline
Пол: Мужской
... и можно без хлеба!


« Ответ #12 : 09-12-2005 09:37 » 

основная проблема заставить батник сутки подождать и не завершиться при этом.
Записан

Удачного всем кодинга! -=x[PooH]x=-
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #13 : 09-12-2005 09:44 » 

okela , если это лабораторная работа, скажи преподу, что решения нет Улыбаюсь
Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #14 : 09-12-2005 09:45 » 

основная проблема заставить батник сутки подождать и не завершиться при этом.

да ещё после перезагрузки Улыбаюсь
Записан

PooH
Глобальный модератор

ru
Offline Offline
Пол: Мужской
... и можно без хлеба!


« Ответ #15 : 09-12-2005 11:42 » 

да ещё после перезагрузки Улыбаюсь

ага Улыбаюсь

не, ну в условии ничего про перезагрузку не сказано Ага ... а тот вариант, что я предложил почти подходит по условию, батник сам себя запускает...  вот только не придумаю куда бы в нем FOR воткнуть... Ага
Записан

Удачного всем кодинга! -=x[PooH]x=-
PooH
Глобальный модератор

ru
Offline Offline
Пол: Мужской
... и можно без хлеба!


« Ответ #16 : 09-12-2005 11:46 » 

Если кто и скажет запускать автоматом батник, то я буду тоже очень рад...

Если надо просто батник запускать (в определенное время), можно попробовать использовать AT (see help at)
Записан

Удачного всем кодинга! -=x[PooH]x=-
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #17 : 09-12-2005 11:48 » 

batник вроде и должен сам себя запускать
а переменные передавать через окружение
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
MOPO3
Ай да дэдушка! Вах...
Команда клуба

lt
Offline Offline
Пол: Мужской
Холадна аднака!


WWW
« Ответ #18 : 23-12-2005 05:11 » 

batник вроде и должен сам себя запускать

Интересно как ты себе представляеш батник запускающий сам себя без посторонней помощи ?
Как насчёт того чтобы запихать задачу в шедулер, чтобы он раз в час запускал какой-то батник, который и создаст/перепишет текстовый файл с датой ?
Записан

MCP, MCAD, MCTS:Win, MCTS:Web
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #19 : 23-12-2005 07:14 » 

один раз батник запустили
а дальше
в батнике візов самого себя
вот только как?

через call или просто вызов

Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
okela
Гость
« Ответ #20 : 24-12-2005 04:15 » 

Долго была of-line, потому как была в коммандировке на севере Якутии, однако  Улыбаюсь
Делала я сей батник так (только сильно не смейтесь)
Текст файла testdate.bat
  if not exist test_date.txt date /t > test_date.txt
  for /f %i in (test_date.txt) do if "%i"=="%date%" goto label1
  date /t > test_date.txt
  :label1
  call testdate.bat
Ну как?
Он конечно не работает, зато комманда  for есть Улыбаюсь

Наука победит!!!!
Записан
x77
Команда клуба

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #21 : 06-04-2006 12:35 » 

Start Menu\Programs\Accessories\System Tools\Scheduled Tasks
Записан

PooH
Глобальный модератор

ru
Offline Offline
Пол: Мужской
... и можно без хлеба!


« Ответ #22 : 06-04-2006 14:08 » 

x77,
Цитата
запускающий сам себя
Записан

Удачного всем кодинга! -=x[PooH]x=-
PooH
Глобальный модератор

ru
Offline Offline
Пол: Мужской
... и можно без хлеба!


« Ответ #23 : 06-04-2006 14:10 » 

okela, он должен запускать сам себя раз в сутки, а не постоянно.
Записан

Удачного всем кодинга! -=x[PooH]x=-
PooH
Глобальный модератор

ru
Offline Offline
Пол: Мужской
... и можно без хлеба!


« Ответ #24 : 06-04-2006 14:12 » 

можно попробовать так:
Код:
  if not exist test_date.txt date /t > test_date.txt
  :label1
  for /f %i in (test_date.txt) do if "%i"=="%date%" goto label1
  date /t > test_date.txt
  call testdate.bat
Записан

Удачного всем кодинга! -=x[PooH]x=-
x77
Команда клуба

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #25 : 06-04-2006 14:33 » 

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

Код:
@echo off
:start
if exist %DATE%.tmp goto start
echo > %DATE%.tmp
echo New Day!
pause
goto start

и это далеко не единственный вариант. вот, например, любопытный ход:

Код: (DOS) wait.bat
ping 127.0.0.1 -n %1% -w 1000> nul

т.е. если мы вызываем этот батник как wait 10 - то получаем задержку в 10 секунд Ага теперь можно организовать и цикл, и что угодно, которое раз в сутки будет что-то делать.
Записан

x77
Команда клуба

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #26 : 06-04-2006 14:36 » 

PooH, вызов самого себя - это в любом случае утопия. прогони просто тест:

Код: (DOS) test.bat
call test

он у тебя вывалиться в эксепшн. это же рекурсия, просто тупо переполнится стек. в твоём примере стек переполнится не сразу, а через пару месяцев, но сама по себе идетя вызывать из батника тот же батник - это зло.
Записан

Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #27 : 06-04-2006 14:59 » 

можно вызывать не через call
тогда управление родителю не передается (по крайней мере в досе не передавалось)
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
x77
Команда клуба

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #28 : 06-04-2006 15:07 » 

Sla, да, ты прав. если тупо писать имя батника - рекурсии не будет.

тогда решение задачи такое, примерно:
Код: (DOS) self.bat
@echo off
if exist %DATE%.tmp goto runme
echo > %DATE%.tmp
echo New Day!
pause
:runme
self
Записан

x77
Команда клуба

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #29 : 06-04-2006 15:08 » 

надо бы конечно чистить временные файлы и пр., но лень просто Улыбаюсь
Записан

Страниц: [1] 2  Все   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines