Quick way to grab 8.3 dosnames in a Win* box.
my %dosname; for (`DIR`) { /^(.{8}) ([^ ]*).+?([^ ]+)\n$/ and ($dosname{$3} = $1 . (length $2 ? ".$2" : "")) =~ tr/ //d; } ## Usage: opendir(MYDIR, ".") or die "Could not opendir: $!\n"; while(defined ($_ = readdir(MYDIR))) { printf "%-12s : $_\n", $dosname{$_}; } closedir(MYDIR);

Replies are listed 'Best First'.
(crazyinsomniac) Re: Grabbing 8.3 DOS names
by crazyinsomniac (Prior) on Jan 21, 2001 at 19:05 UTC
    That's a very sweet and 'robust' snippet.
    I use this one more often:
    #!perl -w use strict; use Win32; my $filename = $0; my $pathname1 = "$^X"; my $pathname2 = Win32::GetFullPathName($filename); print Win32::GetLongPathName($pathname1); print "\n"; print Win32::GetShortPathName($pathname1); print "\n"; print Win32::GetLongPathName($pathname2); print "\n"; print Win32::GetShortPathName($pathname2); print "\n"; print Win32::GetShortPathName($0);

    "cRaZy is co01, but sometimes cRaZy is cRaZy".
                                                          - crazyinsomniac