Left Blank Skrevet 26. november 2004 Del 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; Lenke til kommentar
sumptrollet Skrevet 28. november 2004 Del 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"; } } Lenke til kommentar
superlaban Skrevet 2. februar 2005 Del 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/*"; Lenke til kommentar
Torbjørn Skrevet 10. februar 2005 Del Skrevet 10. februar 2005 gjelder det en katalog, kan det gjøres såre enkelt slik: perl -le 'do{print if -d} for <*>' Lenke til kommentar
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å