Pokaż wyniki 1 do 8 z 8

Temat: perl - wykonywanie polecenia na różnych plikach

  1. #1

    Domyślnie perl - wykonywanie polecenia na różnych plikach

    Witam!
    Słabo znam perla, więc jeżeli by ktoś mógł mi pomóc to byłbym bardzo wdzięczny.
    Potrzebuje skryptu wykonywującego polecenie tyle razy ile jest w katalogu plików za każdym razem na innym pliku.
    Nie bardzo wiem jak przypisać do zmiennej taką liste plików więc gdy by ktoś mógł napisać jak to zrobić to bardzo bym prosił o pomoc
    Pozdrawiam

  2. #2
    Zarejestrowany
    Jul 2007
    Skąd
    C:\Perl\bin
    Postów
    1,578

    Domyślnie

    Cytat Napisał januszmk Zobacz post
    Nie bardzo wiem jak przypisać do zmiennej taką liste plików
    to juz bedzie tablica. np
    my @pliki;
    pierwsze o czym pomyslalem, to `ls` (ewentualnie przefiltruj smieci)
    a nastepnie wczytujemy to do tablicy
    foreach $plik (@pliki) {
    #odwalamy cala robote
    #dla przykladu sub wykonaj_polecenie($plik); czy co tam chcesz
    }
    War, war never changes.

  3. #3

    Domyślnie

    Znalazłem coś aby wykonało polecenie ls i przypisało do tablicy wynik:
    Kod:
    system "ls"
    @pliki = `ls`
    lecz przy wykonywaniu tego skryptu wywala:
    Kod:
    Global symbol "$plik" requires explicit package name at a.pl line 6.
    Dodatkowo przy tym poleceniu które potrzebuje wykonać trzeba podać skrzynke email i wywala przy tym:
    Kod:
    Global symbol "@gmail" requires explicit package name at a.pl line 10.
    Jakieś pomysły co z tym zrobić?

  4. Domyślnie

    perla dobrze nie znam ale widać nie dałeś 'my' przed zmienną @pliki
    Ostatnio edytowane przez hedVB : 03-16-2009 - 21:36

  5. #5

    Domyślnie

    Sory ale zapomniałem dopisać:
    Kod:
    syntax error at a.pl line 5, near "my "
    Global symbol "@pliki" requires explicit package name at a.pl line 5.

  6. #6
    Zarejestrowany
    Jun 2007
    Skąd
    Poznań
    Postów
    159

    Domyślnie

    Kod:
    #! C:\Perl\bin\perl.exe #tu musi byc sciezka do twojego perla
    
    use strict;
    use warnings;
    
    use File::Spec;
    my $katalog = "C:\\Windows\\";
    my $pliki;
    my @DaneWejsciowe;
    
    opendir(DIR,$katalog) or die "blad otwarcia katalogu wejsciowego";
    @DaneWyjsciowe = readdir(DIR) or die "blad pobrania danych wejsciowych";
    closedir(DIR);
    
    foreach $pliki (@DaneWejsciowe)
    {
    print $pliki;
    }
    ten kod wczyta wybrany katalog i wyswietli kazdy element tablicy @katalog
    Ostatnio edytowane przez dexter : 03-17-2009 - 08:51

  7. #7
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Domyślnie

    Kod:
    foreach (<*.txt>) {
      print "mam plik $_\z";
    }
    to *.txt mozna zmienic na dowolna inna maske i powinno zadzialac. krocej chyba sie nie da :P
    ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)

  8. #8

    Domyślnie

    Dzięki wielkie!
    Skorzystałem z tego co napisał dexter i chodzi wszystko
    Pozdrawiam

Podobne wątki

  1. Formularz - wybór kilku różnych pól
    By mobo001 in forum Java Script/Flash/Inne
    Odpowiedzi: 8
    Autor: 06-17-2008, 11:51
  2. Odpowiedzi: 31
    Autor: 05-20-2008, 18:01
  3. operacje na plikach hex
    By ararat in forum Newbie - dla początkujących!
    Odpowiedzi: 4
    Autor: 10-27-2007, 08:14
  4. zdalne polecenia do windows
    By dexter in forum Linux
    Odpowiedzi: 0
    Autor: 09-10-2007, 15:26

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj