Страница 1 из 1

Ошибка в синтаксисе? Скрипт на Perl

СообщениеДобавлено: 24 июн 2004, 14:32
Konstantyn
Нужно скриптом перименовать папку из одного имени в дату...
Если просто в консоли:

move backup:temp/old backup:temp/new - работает!

А в скрипте нехочет:
($sec,$min,$hour,$mday,$mon,$year,$wday) = (localtime(time))[0,1,2,3,4,5,6];
$year += 1900;
$mon++;
$ddate = sprintf("%04d-%02d-%02d",$year,$mon,$mday);
$old="backup:temp/old\n";
$new="backup:temp/$ddate\n";
move $old $new

ошибка:

Can't locate object method "move" via package "backup:temp/old" (perhaps you forgot to load "backup:temp/old"?) at script.pl line 10

Что бы это значило? я неправильно объявляю переменную $old и $new ?

СообщениеДобавлено: 24 июн 2004, 15:02
Михаил Григорьев
move это консольная команда из toolbox и соответственно её нужно так вызывать:

Код: Выделить всё
system("move backup:temp/old backup:temp/new");


Можно например monitor.nlm запустить так

Код: Выделить всё
system("monitor.nlm");


а можно и пароль dspass.nlm сменить

Код: Выделить всё
system("DsPass.nlm CN=Neo.O=CHERTS 12345");


Полный вариант скрипта такой:

Код: Выделить всё
($sec,$min,$hour,$mday,$mon,$year,$wday) = (localtime(time))[0,1,2,3,4,5,6];
$year += 1900;
$mon++;
$ddate = sprintf("%04d-%02d-%02d",$year,$mon,$mday);
$old="backup:temp/old";
$new="backup:temp/$ddate";
system("move $old $new");

zamechanie

СообщениеДобавлено: 24 июн 2004, 23:02
skoltogyan
v vishe opisanom variante (zapusk system function from system(...)) est vazhnoe mesto -- net statusa zaversheniya opperacii.
T.e. zasheduliv vi ne budite znat kak otrabotala komanda - s oshibkoj ili bez.