Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Системное программирование > Засунуть батник в perl-скрипт?


Автор: Suppir 5.10.2009, 11:13
Есть батник для синхронизации времени с сервера:
--------------------------------
net time \\SERV /set /yes
--------------------------------

Батник работает. Но возникла задача выполнять этот батник с задержкой по времени. Я пишу скрипт:

require Win32::Console;
Win32::Console::Free();
sleep(60);
system ("net time \\SERV /set /yes");



В ответ пишет, что неверен синтаксис команды NET TIME

Автор: shamber 5.10.2009, 12:06
Suppir, слешей добавьте smile
Код

system ("net time \\\\SERV /set /yes");


как-то так

Автор: Suppir 5.10.2009, 12:34
ой, точно smile спасибо за ответ!

Добавлено через 12 минут и 16 секунд
Вопрос: а можно как-то в батнике задержку прописать? (просто не на всех машинах Perl стоит)

Автор: shamber 5.10.2009, 12:56
Suppir, perl to exe ?

Автор: Suppir 5.10.2009, 12:59
perl to exe знаю, но думал, можно как-то проще сделать smile
может, просто добавить в батник строчку

Автор: shamber 5.10.2009, 13:03
догадываюсь что не то, но спрошу:
pause? 

Автор: Suppir 5.10.2009, 13:11
Если написать pause, то консоль будет висеть и ждать ввода.
Нужно, чтобы консоль не было видно, и время автоматом скорректировалось спустя минуту после запуска батника/скрипта.

Добавлено через 2 минуты и 35 секунд
Немножко оффтоп. (может кто знает). Поставил свежий total commander и обнаружил следующую ошибку:
при копировании текстового файла из одной директории в другую у него меняется кодировка с CP866 на CP1251. Половина скриптов (с русским текстом) испорчена :( Может кто знает, как эту пакость отключить?

Автор: jdoe 5.10.2009, 16:05
обычно задержку в батнике делают используя ping (на тот же 127.0.0.1).

совместить батник и перл-скрипт легко:

Код

@echo off
<приготовления>
perl -x %0 <параметры>
exit /b

#!perl
<дальше идет перл>



здесь весь секрет в ключе -x, который будет игнорировать всё, пока не найдет строчку, начинающуюся с #!

ежели некоторые действия необходимо выполнять через нужный промежуток времени, то стоит воспользоваться стандартными возможностями ОС по планировке заданий.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)