ну если не тяжело по подробней розпиши , а то я уже задом на перед писал нихера не запускаетьсо , а так обидно и хочеццо запустить скрипт (((((((
жмешь пуск -- выполнить -- вводишь cmd -- появляется консоль -- в ней вводишь -> perl script.pl -- это если скрипт находится в текушей открытой папке -- если нет то пиши perl и путь до скрипта тнапример C:\papka\sploit_tyt_legit.pl
ну вот ! так и делаю вот что пишет : "perl" не являеться внутренней или внешней командой, исполняемой программы или пакетным файлом. тут что-то не то
народ! помогите, я чёта в рубиться не могу.... кароч у меня есть около 60 фоток и мнe их надо переименовать с помощью перла! план таков...это => "SNC115XX.JPG" надо переименовать в это => 1-60".jpg" и так пока все фотки не переименуются! Mлин, как это осуществить? PS: тёща....как у тя в сплойте путь к перлу прописан?
Tw!m4 1. открываешь диру ( opendir ) 2. считываешь содержимое диры в массив ( readdir ) 3. перееименовываешь в цикле каждый элемент массива ( foreach $file (@files) { ) в блоке цикла проверяешь регулярным выражением соответствует ли имя файла тем, что нужно переименовать, если соответствует: rename $file, ++$num.'jpg'; переменную $num инициализируешь нулем, за пределами блока, конечно..
Ну вот, на сколько я понял, проходит эта всё таким путём Code: #!/usr/bin/perl -w #use strict; use File::Copy; my $num=0; my $dir="/path/to/dir"; opendir(DIR, $dir) or die $!; @files=readdir(DIR); foreach $file (@files) { $_ =~ m/([a-zA-Z])\d+?/g; # <= вот сдесь у меня проблема! rename $file, ++$num.'txt'; } closedir(DIR); Я тока начал изучать Перлу и с регекспами у меня немножко( то есть оОчень большая =] ) не лажа, need help please! =]
теща Помоему у тебя perl не стоит. Попробуй просто в cmd введи perl -v .Такая команда показывает какая версия perl установлена. Если снова такая же мессага вылетит, значит переставляй Perl
Tw!m4 Code: #!/usr/bin/perl -w use strict; [COLOR=Red]#[/COLOR] use File::Copy; ## это не нужно my $num=0; my $dir="/path/to/dir[COLOR=Red]/[/COLOR]"; opendir(DIR, $dir) or die $!; [COLOR=Red]my[/COLOR] @files=readdir(DIR); foreach [COLOR=Red]my[/COLOR] $file (@files) { [COLOR=Red]#[/COLOR] $_ =~ m/([a-zA-Z])\d+?/g; # <= вот сдесь у меня проблема! ## про регексп я написал, исходя из того, что в дире с файлами, которые надо переименовать, могут находиться те, которые переименовывать не надо.. если это не так, то можно и без регулярного выражения обойтись.. но, допустим, файлы, которые надо переименовывать оканчиваются на 'JPG' (как у тебя написано), тогда мы переименовываем, проверяя на это: rename $dir.$file, $dir.++$num.'.jpg' if $file =~ /JPG/; ## ну понятное дело ренейму надо знать в какой дире файлы эти лежат ) } closedir(DIR);
работа с файлами Сорри за тупой вопрос. Нужно удалить из файла все строки, начинающиеся со "*". Делаю кривым путём Code: open (MYFILE, 'p.txt'); open(TEMP,'>>p~.txt'); while (<MYFILE>) { if ( substr($_, 0, 1) != "*") { chomp; print TEMP "*".$_."\n"; } } close (MYFILE); close(TEMP); rename("p~.txt", "p.txt"); Файл становится пустым (p.txt). Хотя первый символ определяет правильно. Подскажите в чём прикол? P.S. Я понимаю, что вся эта байда с двумя файлами вообще не нужна, но, по возможности, объясните в чём трабл, а не придумывайте простые решения. Заранее спасибо
2 malamut Code: #!/usr/bin/perl -w use strict; use warnings; use constant BACKUP_PREFIX => 'backup_'; use constant COMMENT => '\x2A'; use Getopt::Std; my %options; getopts( "f:" , \%options ); if( !exists $options{f} ) { &usage; } else { my $m_file = $options{f}; &sort( $m_file ); } sub sort { my $m_file = shift; my $b_file = BACKUP_PREFIX."$m_file"; my $comment = COMMENT; my @save = undef; my @backup = undef; open( my $file_m, "+<", $m_file ) || exit print "ERROR:Cant\'t open $m_file"; open( my $file_b, ">", $b_file ) ; my $i = 0; my $b = 0; my $g = 0; while( <$file_m> ) { if( substr($_, 0, 1) =~/$comment/ ) { $b++; } else { $save[$g] = $_; $g++; } $backup[$i] = $_; $i++; } foreach ( @save ) { print $file_m "$_"; } close( $file_m ); foreach ( @backup ) { print $file_b "$_"; } close( $file_b ); &stats( $i,$b,$g,$m_file,$b_file ); } sub stats { my $comment = COMMENT ; my( $all,$good,$bed,$file_m,$b_file ) = ( shift,shift,shift,shift,shift ); printf "\t In all the lines : %.3d \n". "\t Lines Containing '%.4s' : %.3d \n". "\t Lines not Containing '%.4s' : %.3d \n\n". "\t Lines, Containing is stored in : %s \n". "\t A back-up copy is stored in : %s \n",$all,$comment,$good,$comment,$bed,$file_m,$b_file ; } sub usage { print "\t Usage : $0 -f <file> \n". "\t Example : $0 -f file.txt \n"; exit 1; } Мой файл : file.txt Code: *line1 line2 line3 *line4 запускаем : Code: perl -f file.txt Статистика : Code: In all the lines : 005 Lines Containing '\x2A' : 002 Lines not Containing '\x2A' : 003 Lines, Containing is stored in : file.txt A back-up copy is stored in : backup_file.txt Смотрим файл:file.txt Code: line2 line3 бекап в файле backup_file.txt
malamut Code: open (MYFILE, 'p.txt'); open(TEMP,'>>p~.txt'); while (<MYFILE>) { print TEMP '*'.$_ if substr($_, 0, 1) ne '*'; ## тут надо использовать ne, т.к. строка ## как вариант можно использовать регексп: ## print TEMP '*'.$_ if not /^\*/; ## кстати незачем делать chomp, а затем снова добавлять перенос строки... } close (MYFILE); close(TEMP); rename('p~.txt', 'p.txt');
использование strict; и как следствие my -- тут не совсем целесообразно тк скрипт маленький и я думаю имена всех переменных можно и самому запомнить - я это к тому чтобы новички не вбили себе что надо всегда юзать стрикт и все переменные объявлять через my - вот вообще никогда его не юзаю и пишу - нормально работающие скрипты -- тут есть выбор
>> вот вообще никогда его не юзаю и пишу - нормально работающие скрипты ну так ты серьезных скриптов никогда не писал.. я согласен, что в небольших скриптах использование strict вовсе не обязательно, тем не менее как тока размер твоих скриптов начинает увеличиваться, начинает увеличиваться и количество ошибок, число которых strict помогает сократить.. имхо, новичкам как раз рекомендуется юзать strict.. кроме того, например, разработка веб-приложений под modperl, обязует программера использовать strict..
есть перл скрипт эксплоита для wordpress как его привести в рабочее положение,только если можно подробнее
Помогите пожалуйста, можете сказать где здесь ошибка: printf $socket ("GET %sindex.php?act=Login&CODE=autologin HTTP/1.0\nHost: %s\nAccept: */*\nCookie: member_id=%s; pass_hash=%s%s%s%s%s\nConnection: close\n\n",
printf $socket ("GET %sindex.php?act=Login&CODE=autologin HTTP/1.0\nHost: %s\nAccept: */*\nCookie: member_id=%s; pass_hash=%s%s%s%s%s\nConnection: close\n\n"); мб так?