![]() |
Странное поведение bat при logoff
Привет!
Помоги разобраться со странный поведением системы. У меня есть 2 bat-файла. Первый создает lock.txt каждые 60 секунд Код:
:loop Код:
start /wait QikDesktop.exe |
Для меня стало новостью что в виндах есть команда logoff, в виртуалку лезть лень, посему проверять не буду. Для аналогичного действия всегда использовал shutdown -l.
Однако к батникам. Первый батник использует goto, что вообще не очень красиво и чего следует избегать (не только в батниках, скорее вообще по жизни). Вместо того чтобы создавать бесконечный цикл с таймаутом в хлипком батнике, лучше бы загнать в шедулер одну строчку и отправить ее выполняться каждую минуту. Какой гешефт это будет иметь? Не будет привязки к времени отработки и прорисовки ответов от всех команд, т.о. через шедулер файл на самом деле будет создаваться раз в минуту, а не раз в 60,035 секунд (тысячные приведены для примера, не являются реальным замером). На набольшом промежутке времени это не так уж критично, но если взять хотя бы несколько часов... Ну и вопреки таймеру происходить ничего не будет. Строчка эта, как я вижу, не только создает, еще и перезаписывает имеющуюся в этом файле информацию, но это как бы не особо критично. Во втором батнике не вижу ничего криминального, файл удаляется потому что команда на логоф после удаления. |
Цитата:
Код:
> logoff |
Цитата:
Файл lock и должен удаляться. Попробую заменить logoff, но не думаю, что проблема в этом. |
Вложений: 1
Цитата:
просто пропускаем :loop создаем файл с информацией в echo echo %computername% %date% %time% > lock.txt ждем 60сек timeout /t 60 переходим по метке goto loop так почему вопреки, через каждые 60сек файл перезаписывается, но создается при запуске bat Цитата:
|
Цитата:
|
Цитата:
Цитата:
Код:
SCHTASKS /Create /SC MINUTE /MO 1 /TN "Proba" /TR "C:\name.bat" |
alpap спасибо, шедулер я сейчас загнать ну никак не могу.
Подскажите пожалуйста как через цикл for создавать файл каждую минуту? Пробовал таким способом, но работает не корректно - первый раз создает и дальше информация в файле не обновляется. Код:
for /l %%a in (0,0,0) do ( |
pedrosoft, обновляется (Вы это можете увидеть по дате-времени создания файла. Просто она у Вас всё время одна и та же — та, что будет на время входа в операторные скобки цикла.
Либо: Код:
@echo off Код:
for /l %%a in (0,0,0) do ( |
Время: 16:35. |
Время: 16:35.
© OSzone.net 2001-