in reply to [OT] Invoking Perl via batchfile: ampersand in PATH [Solved]

Hello Athanasius,

apart from my allergy to any non ascii chars in everything in any os, if i remember correctly Strawberry told me something like:"Strawberry Perl cannot be installed in a directory with spaces or non-ASCII characters" and probably the space is worst than ampersand. I personally would prefer to reinstall the program in a normalized path..
Anyway i think you can modify the portableshell.bat to include your malefical path as follow
set _TEST="c:\path\dir & test" set PATH=%_TEST%;%drivep%\perl\site\bin;%drivep%\perl\bin;%drivep%\c +\bin;%PATH%
then you can use it as you wish, after launching the batch:
c:\strawberry>set ... Path="c:\ulisse\dir & test";C:\ulisse\strawberry\perl\site\bin;C:\ulis +se\strawberry\perl\bin; ... _TEST="c:\path\dir & test" c:\strawberry>cd %_TEST% c:\path\dir & test>perl -e "print $ENV{PATH}" c:\path\dir & test;C:\strawberry\perl\site\bin;C:\strawberry\perl\bin; +C:\strawberry\c\bin; .....
UPDATE: ahh.. you can also use junction (from sysinternals) as mentioned in the thread Installing CPAN on a Windows system or native command to achieve the same result: see here

HtH

L*
There are no rules, there are no thumbs..
Reinvent the wheel, then learn The Wheel; may be one day you reinvent one of THE WHEELS.

Replies are listed 'Best First'.
Re^2: [OT] Invoking Perl via batchfile: ampersand in PATH
by Athanasius (Archbishop) on Nov 02, 2015 at 09:55 UTC

    Hello Discipulus,

    Thanks for the reply. Unfortunately, it doesn’t help. :-( Adding %_TEST% in this way does succeed in getting the full directory name into the PATH variable; but the later %PATH% in the assignment still chokes on the ampersand, as before.

    However, adding double quotes around the assignment does work, after all:

    set "PATH=%drivep%\perl\site\bin;%drivep%\perl\bin;%drivep%\c\bin;%PAT +H%"

    (I made a mistake when testing.)

    Junction looks interesting. I’ll have to look into it.

    Thanks,

    Athanasius <°(((><contra mundum Iustus alius egestas vitae, eros Piratica,