[pm-h] Help building Shortcut; Need make.exe for PC
Chris Blanc
cblanc at dionysius.com
Sat Sep 27 04:54:16 PDT 2008
For those who really want to drive themselves nuts:
http://www.stdlib.com/art6-Shortcut-File-Format-lnk.html
http://www.i2s-lab.com/Papers/The_Windows_Shortcut_File_Format.pdf
It's not as painful as I thought, "sort of."
On Fri, Sep 26, 2008 at 05:08:20PM -0600, Mike Flannigan wrote:
>
> Haufler, Wayne A wrote:
> >I have been trying to write a short Perl script on a PC (ActivePerl)
> >that would replace duplicate copies of huge video files with Shortcuts
> >to the corresponding original video files. To do this, I need and
> >acquired the Win32::Shortcut module from CPAN.
> >
> >The Shortcut's README file claims "You can always find the latest
> >version of this package online at:
> >http://www.divinf.it/dada/perl/shortcut
> >
> >But that dada directory does not appear to exist.
> >
> >In Win32-Shortcut-0.07\docs\intro.html
> >
> > Installation Instructions
> >1. Run the INSTALL.BAT program.
> >2. Run the TEST.PL script to see if everything works
> >
> >Whereas, the only two files in the eg directory are: ln32.bat and
> >sample.pl.
> >
> >Anyway, somewhere I found build instructions involving make.
> >Shortcut does come with a Makefile and a Makefile.pl.
> >I understand Makefile.pl is used with ExtUtils:MakeMaker to generate the
> >Makefile.
> >
> >I'm familiar with make in the Unix world (years ago), but
> >can't seem to acquire any form of make program for the PC world.
> >
> >I do have Cygwin installed (though not the entire package),
> >but no version of make.exe or gmake.exe is found there.
> >
> >Must I reinstall the WHOLE Cygwin package? to get make.exe?
> >
> >Also am aware of minGW and MSYS and tried to install them for their
> >(supposed) version of make, but keep running into obstacles.
> >
> >I know, I should ask the Perl::Win32::users list (or similar).
> >
>
> That sounds like it would be a handy a program. It also
> sounds like it would be relatively easy to create. I'm not
> sure this is what you want, but I will recommend this
> basic structure for traversing the disk.
>
>
> use strict;
> use warnings;
> use File::Find;
> $| = 1; #Autoflush STDOUT
>
> #finddepth comes from File::Find
> #finddepth searches from the bottom of the tree up
>
> my $folder = "C:/Copy";
>
> finddepth(\&Replace, $folder);
>
>
> sub Replace{
> #NOTE: finddepth chdirs to the directory it's
> # traversing and sets the filename to $_.
> # $File::Find::name is the full path to the file
>
> unless (/\.$/) {
> my $origname = $_;
> s/#/no/g; # Or do something else here
> rename $origname,$_ or die "Couldn't rename $origname!";
> print "File: $origname - $_\n" if (/\./);
> print "Directory: $origname - $_\n" unless (/\./);
> }
> }
>
>
> __END__
>
>
> I have never used the win32::Shortcut module.
>
> I guess you should create a hash whose key (or
> value) is the path and name of the original file. How
> you figure out it is a duplicate is another problem.
>
> If you ever hear of some Perl get-togethers down here in
> Clear Lake, please let me know.
>
>
> Mike
>
> _______________________________________________
> Houston mailing list
> Houston at pm.org
> http://mail.pm.org/mailman/listinfo/houston
> Website: http://houston.pm.org/
--
http://www.dionysius.com/
Internet intoxication.
http://www.chrisblanc.org/blog/
You know: stuff; insightful +2
More information about the Houston
mailing list