Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Re: rename 0.3 - now with two extra cupholders

by Ciantic (Initiate)
on Mar 21, 2010 at 14:16 UTC ( #829948=note: print w/ replies, xml ) Need Help??


in reply to rename 0.3 - now with two extra cupholders

I just tried this with Strawberryperl while a go, and remember it working just well. Now that I'm sitting on Windows 7* it doesn't seem to be able to get the list of files:

C:\Pics>dir Volume in drive C has no label. Volume Serial Number is 4C17-845B Directory of C:\Pics 20.02.2010 04:23 <DIR> . 20.02.2010 04:23 <DIR> .. 29.05.2009 14:59 1 578 868 DSCF3888.JPG 29.05.2009 14:59 1 565 825 DSCF3889.JPG 29.05.2009 14:59 1 643 616 DSCF3890.JPG 29.05.2009 14:59 1 664 020 DSCF3891.JPG 4 File(s) 6 452 329 bytes 2 Dir(s) 187 149 787 136 bytes free C:\Pics>renamer -n -s DSCF okay *.JPG Dry run, no changes were made. C:\Pics>

Notice that I had to rename the script to renamer, but this does not affect anything

* I suppose it worked under Windows 7 earlier, but it might have been Release Candidate of Windows 7, now I'm using the real thing.


Comment on Re: rename 0.3 - now with two extra cupholders
Download Code
Replies are listed 'Best First'.
Re^2: rename 0.3 - now with two extra cupholders
by Anonymous Monk on Mar 21, 2010 at 14:48 UTC
    It never worked the way you remember, try adding use Win32::Autoglob;
    perl -MWin32::Autoglob -le"print for @ARGV" *

      ... or alternatively

      @ARGV = map { glob $_ } @ARGV;

      or, if you want sane whitespace handling,

      use File::Glob qw(bsd_glob); @ARGV = map { bsd_glob $_ } @ARGV;

      , optionally in a BEGIN block. But now, actually looking at the source of Win32::Autoglob, that's just what the module does. Thanks for pointing it out to me :).

        Not sure why he does a sort. glob always returns sorted on win32.


        Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
        "Science is about questioning the status quo. Questioning authority".
        In the absence of evidence, opinion is indistinguishable from prejudice.

      That works, thanks! I must have tested it under sane OS back then. I'd like to list the complete procedure one is required to do under Windows to get Perl renaming work:

      1. Get strawberryperl, portable version is just fine (make sure that path to the strawberryperl does not have spaces!)

      2. Start strawberryperl command line. And run CPAN Win32::Autoglob (this installs the Autoglob)

      3. Copy code of above rename program to the C:\strawberryperl\perl\bin\renamer file (Windows has program called rename already, so don't use that name)

      5. Create copy of file C:\strawberryperl\perl\bin\runperl.bat as name renamer.bat (Contents of this file is not needed to change)

      6. Add use Win32::Autoglob; to the renaming code.

      Now you should have portable Perl capable renaming script to take with you.

      I know the steps I described above are routine tasks, but many times one just wants to rename files and not go through the hassle of learning to install Perl in Windows. So I wish my instruction will help someone.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://829948]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (14)
As of 2015-07-31 21:42 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (282 votes), past polls