2010-04-05 2 views
0

Можно ли назвать WinRar через Perl в системе окон, таких какКак я могу позвонить WinRar в Perl на окнах

Perl -e «ЭОР -rr10 -sc: \ подпорки \ backup.rar @backup .lst "

Если да, то есть ли более эффективный способ сделать это?

Я искал «perl -e» + winrar в Google, однако ни один из результатов не дал мне ответа, который был удаленно близок к тому, что я искал. Система Im, на которой работает эта система, - это система Windows XP. Я готов сделать это на другом языке, таком как python, если это будет проще, но я более удобен для Perl.

ответ

2

Один из способов выполнения внешних команд из сценария Perl является использование system:

my $cmd = 'rar a -rr10 -s c:\backups\backup.rar @backup.lst'; 
if (system $cmd) { 
    print "Error: $? for command $cmd" 
} 
+1

Спасибо, этот ответ был очень ясен. – perlnoob

+0

Единственная проблема, с которой я столкнулся, - это запустить ее в каталоге winrar. Кроме этого, он работает как шарм. – perlnoob

+1

Помогает ли это, если вы измените его на «c: \ path \ to rar ......» – justintime

1

Чтобы использовать внешние приложения из своей программы Perl, используйте встроенный system.

Если вам нужен вывод из команды, вы можете использовать оператор обратного хода (``) или qx, как описано в perlop. Вы также можете использовать трубы, как описано в perlipc.

+0

ли я все еще нужен для установки env like: $ ENV {winrar} = "C: \ Program Files \ WinRAR \"; или я могу пропустить это с помощью системы – perlnoob

4

Вы можете получить доступ к RAR объектов в Windows, используя модуль CPAN Archive::Rar:

use Archive::Rar; 
my $rar = Archive::Rar->new(-archive => $archive_filename); 
$rar->Extract(); 
Смежные вопросы