Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перемещение Файлов 
:(
    Опции темы
WTF4XZ
Дата 28.3.2010, 02:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 118
Регистрация: 16.4.2007
Где: 63 Самара

Репутация: нет
Всего: 5



Доброго времени суток!
Вот начал изучать Perl и возникла такая проблема.
Требуется производить перемещения файлов по маске как на пример в Windows move C:\papka\*.txt D:\papka\*.txt
но проблема в том что стандартные перловкие move и rename этого делать не умеют. Или просто я совсем не понимаю как в них это сделать.
--------------------
Я создание эмоций, создание способные чувствовать не только эмоции людей но и машин.Я EMO_CODER != FALSE;Никто не знает о нас, но мы есть, мы живём, мы кодим и мы... чувствуем, ипспытываем такие эмоции.. сильнее любого бинарника, мощнее любого ассемблера.
PM MAIL ICQ GTalk Jabber   Вверх
Egik2
Дата 28.3.2010, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 302
Регистрация: 29.7.2008
Где: Агудзера

Репутация: 1
Всего: 11



Вот пример кода:

Код

#!/usr/bin/perl

use strict;

my ($dir_from, $dir_to) = ("C://test//test1", "C://test//test2");

opendir(DIR, $dir_from) or die "Can't open dir $!";
my $file;
while ($file = readdir(DIR)) {
    if($file =~ /^\./) {
        next;
    }
    rename $dir_from."//".$file, $dir_to."//".$file;
}


Здесь, в условии 
Код

if($file =~ /^\./) {
        next;
    }

внутри цикла можешь проверять файлы на какую хочешь маску  smile 

Это сообщение отредактировал(а) Egik2 - 28.3.2010, 10:26


--------------------
Три великие добродетели программиста: лень, нетерпение и самомнение (Larry Wall)
a-nav.com
developer-blog.ru
world-poetry.org
PM MAIL WWW ICQ   Вверх
Pfailed
Дата 28.3.2010, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 19.7.2009

Репутация: 22
Всего: 39



Egik2, можно попроще с помощью глоббинга.

Код

use strict;
use File::Basename;

foreach my $oldname(</tmp/1/*.txt>)
{
    my $newname = "/tmp/2/" . basename($oldname);
    rename ($oldname, $newname);
}



--------------------
PM MAIL   Вверх
birdfree
Дата 28.3.2010, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 12.12.2008

Репутация: 1
Всего: 1



Большое всем спасибо! Вы мне очень помогли))
P.S. WTF4XZ это акк моего друга я от  него задал вопрос
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0618 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.