Gå til innhold

Et lite directory listing script


Anbefalte innlegg

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
Videoannonse
Annonse

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
  • 2 måneder senere...
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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...