#!perl use File::Find; $condition = "~|\.lnk|\.wgp|\.ini|\.tmp|backup|widegrep|(?:(?=.*old)(?!.*00ľ¶á¸ø³«ÈÇ))"; open TARGETFILES, "filelist.txt" or die "can't open file"; @filelist = ; close TARGETFILES; chop @filelist; foreach $dirname (@filelist){ $dirname =~ s!\\!/!g; find(\&print_dir, $dirname); } open OUT, ">tmplist.txt"; print OUT @outlist; close OUT; open SKIP, ">tmpskiplist.txt"; print SKIP @skiplist; close SKIP; open DIR, ">tmpdirlist.txt"; print DIR @dirlist; close DIR; exit(0); sub print_dir{ if ($File::Find::name =~ /$condition/i){ push @skiplist, $File::Find::name, "\n"; } elsif (-d $File::Find::name){ push @dirlist, $File::Find::name, "\n"; } else{ push @outlist, $File::Find::name, "\n"; } }