There may be a simpler way to "DOSify" the file name but this works for me. There's a Win32 API call GetShortPathName that returns the DOSified path name. You can call it from perl using Win32::API. The prototype is
DWORD GetShortPathName( LPCTSTR lpszLongPath, // null-terminated path string LPTSTR lpszShortPath, // short form buffer DWORD cchBuffer // size of short form buffer );
The equivalent call in perl can be written like this:
use Win32::API; #import the function my $GetShortPathName = new Win32::API("kernel32","GetShortPathName",[ +P,P,N ],N); if (not defined $GetShortPathName) { die "could not import GetShortPathName"; } #the name we want to convert $longname = "C:\\Program Files\\Microsoft Office\\Office\\OLREAD9.TXT" +; #create a string big enough to hold the shortname $shortname = " " x 80; #retval will be length of the DOSified short name $retval = $GetShortPathName->Call($longname,$shortname,80); #trim the trailing blanks #recall that $shortname = " " x 80 #and retval is the length of the name returned by GetShortPathName $shortname = substr($shortname,0,$retval); print "longname = \n\"$longname\", \nshortname = \n\"$shortname\"";
On my system, this returns
C:\temp>perl shortname.pl longname = "C:\Program Files\Microsoft Office\Office\OLREAD9.TXT", shortname = "C:\PROGRA~1\MICROS~3\Office\OLREAD9.TXT" C:\temp>

In reply to Re: Re: execute a file by RhetTbull
in thread execute a file by Larinda Stone

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.