les noms de fichiers d’impression en ligne de commande dans le fichier de sortie

Cela semble facile sous Linux, mais j’essaie d’imprimer les noms des fichiers * .pdf dans un répertoire et ses sous-répertoires dans un fichier de sortie. J’ai perl installé sur ma machine Windows. Quel est un moyen simple de le faire?

Merci Jake

    Pas très différent de Linux.

    dir *.pdf > fileyouwant.txt 

    Si vous ne voulez que les noms de fichiers, vous pouvez le faire avec

     dir/b *.pdf > fileyouwant.txt 

    Si vous voulez aussi des sous-dossiers,

     dir/s/b *.pdf > fileyouwant.txt 

    Si vous n’êtes pas dans ce répertoire pour commencer

     dir/s/b C:\Path\*.pdf > fileyouwant.txt 
     use ssortingct; use warnings; use File::Find; my $dirname = shift or die "Usage: $0 dirname >outputfile"; File::Find::find( sub { print $File::Find::name, "\n" if $File::Find::name =~ /\.pdf\z/ }, $dirname ); 

    File :: Find :: Rule est souvent plus agréable à utiliser que File :: Find .

     use File::Find::Rule; my $rule = File::Find::Rule->file()->name('*.pdf')->start('C:/Path/'); while (defined (my $pdf = $rule->match)) { print "$pdf\n"; } 

    ou simplement

     use File::Find::Rule; print "$_\n" for File::Find::Rule->file()->name('*.pdf')->in('C:/Path/'); 

    En utilisant Perl, vous devriez presque certainement utiliser le module de base File :: Find .

    Voir le module File :: Glob .

    Plus précisément:

     #!/usr/bin/perl use File::Glob ':glob'; # Override glob built-in. print join("\n",glob("*.pdf"));