Left Blank Skrevet 26. november 2004 Skrevet 26. november 2004 Altså hittil fungerer det, men det som skjer er at den printer bare ut til fila: c0ax's directory lister version 0.4 Found directory: <.> Found directory: <..> men den printer ikke ut alle dir'a som er i mappen (har tredobbelsjekka at mappa er riktig) Så to spørsmål, er scriptet riktig skrevet/kan det gjøres på en annen måte som er enklere, hvis ikke, hva må fikses i dette scriptet? opendir MP3, 'E:\\juarez\\mp3\\'; @mp3s = readdir(MP3); open OUTFILE, '>E:\\juarez\\perlscripts\\test.txt'; print OUTFILE "coax's directory lister version 0.4\n\n"; foreach $mp3e (@mp3s) { if (-d $mp3e) { print OUTFILE "Found directory: <$mp3e>\n"; } } closedir MP3; close OUTFILE;
sumptrollet Skrevet 28. november 2004 Skrevet 28. november 2004 Jeg skjønner ikke helt hva du prøver på, men. Skal du ha en sak som printer ut alle katalogene i mappen så kan du bruke dette rasket som jeg dunket sammen, det kan sikkert gjøres vakrere, men det funker nå i det minste. #!/usr/bin/env perl use File::Find; $dir = "/bane/til/katalog"; find(\&run, $dir); sub run { if (-d $_) { print "Found dir $_ \n"; } }
superlaban Skrevet 2. februar 2005 Skrevet 2. februar 2005 Altså hittil fungerer det, men det som skjer er at den printer bare ut til fila: c0ax's directory lister version 0.4 Found directory: <.> Found directory: <..> men den printer ikke ut alle dir'a som er i mappen (har tredobbelsjekka at mappa er riktig) Så to spørsmål, er scriptet riktig skrevet/kan det gjøres på en annen måte som er enklere, hvis ikke, hva må fikses i dette scriptet? opendir MP3, 'E:\\juarez\\mp3\\'; @mp3s = readdir(MP3); open OUTFILE, '>E:\\juarez\\perlscripts\\test.txt'; print OUTFILE "coax's directory lister version 0.4\n\n"; foreach $mp3e (@mp3s) { if (-d $mp3e) { print OUTFILE "Found directory: <$mp3e>\n"; } } closedir MP3; close OUTFILE; Siden du bruker ' istedenfor " så trenger du ikke dobbel \\. Prøv også med / istedenfor \. Og hvis du kjører via CygWin, erstatt E: med /cygdrive/e (Cygwin er supert, men akkurat det der irriterer litt) Flg. kode gjør ca det samme tror jeg: $katalog='E:\juarez\mp3\'; open(OUT,'>output.txt'); print OUT "Dirlisting:\n"; print OUT map"Found directory: <$_>",grep-d,glob"$katalog/*";
Torbjørn Skrevet 10. februar 2005 Skrevet 10. februar 2005 gjelder det en katalog, kan det gjøres såre enkelt slik: perl -le 'do{print if -d} for <*>'
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå