Dr. -
You should have specified that you needed a solution for both Win2K and Win9x in the first place.
I don't know if it applies in your case, since you don't specify exactly what the link points to, the exact path would be nice to see, but I do recall a nasty habit Win9x has if it runs certain *.lnk files created by Win2K on a network file share, unless the *.lnk has read-only attributes and/or file permissions set, it changes the *.lnk file to a *.pif. This was the case where the *.lnk started a *.bat anyway is my vague recollection, but it may apply to other file types as well.
There are also different ways to handle the "start" command in NT versus W9x scenarios. Branch depending upon the output from @inwin. Since "start" is a command within the command processor, cmd.exe in NT, you need to use the form:
code:
shell '%comspec% /c start "fullpathto\shortcut.lnk"'
Since start.exe is used in Win9x, external to the command processor, you shouldn'd need the %comspec% /c part:
code:
shell 'start "fullpathto\shortcut.lnk"'
Also be careful using quotes with the start command in NT-based OS's. Open a command prompt and type "start /?" (sans quotes) for the full description of proper usage of the start command in NT. It will probably try to interpret your *.lnk if its in quotes as a title for the window it opens and you'll need a second set of quotes. Based on this notion, it might be best to construct an internal variable in your script based on what @inwin returns, using chr(34) for quotes and so on.
Generally in my opinion it is messy using different combinations of %comspec%, *.lnk's and "start" in a mixed NT/9x environment to do something and its best to try to avoid it if at all possible.
mole
_________________________
mole
Who is John Galt?