hey guys anyone knows or can telll from the code of
http://nsis.sourceforge.net/archive/...ances=0,11,211 or http://nsis.sourceforge.net/archive/...ances=0,11,211
what would be the corect delimiter between strings values for $PATHS (when using $PATHS intead of $INSTDIR in order to register multiple paths)
i tried
!define PATHS "C:\folder\bin,C:\folder\lib"
!define PATHS "C:\folder\bin;C:\folder\lib"
!define PATHS "C:\folder\bin|C:\folder\lib"
!define PATHS "C:\folder\bin C:\folder\lib"
!define PATHS "'C:\folder\bin','C:\folder\lib'"
and none worked
multiple path manipulation
13 posts
Here is a snippet from the first link you mentioned:
The PATH in the snippet is an environment variable (the snippet is adding a line to the end of AUTOEXEC.BAT).
I am not sure what you meant when you used "!define PATHS whatever" in your message. Are you trying to provide a selection of possible installation folders?
A semicolon is used as the separator in the PATH (see the FileWrite line in the snippet)FileOpen $1 "$1\autoexec.bat" a
FileSeek $1 0 END
GetFullPathName /SHORT $0 $0
FileWrite $1 "$\r$\nSET PATH=%PATH%;$0$\r$\n"
FileClose $1
The PATH in the snippet is an environment variable (the snippet is adding a line to the end of AUTOEXEC.BAT).
I am not sure what you meant when you used "!define PATHS whatever" in your message. Are you trying to provide a selection of possible installation folders?
no man
i am just trying to add paths
the original scripts use $INSTDIR to add only a path ( the instalation path )
i replaced that with ${PATHS} as i need to add multiple paths that are not related to the $INSTDIR
the format that interests me is of the data in ${PATHS} not in autoexec.bat
i am just trying to add paths
the original scripts use $INSTDIR to add only a path ( the instalation path )
i replaced that with ${PATHS} as i need to add multiple paths that are not related to the $INSTDIR
the format that interests me is of the data in ${PATHS} not in autoexec.bat
The first Archive link gives this example which adds $INSTDIR to the path:
Remember that on Win9X systems there is a limit to the length of the PATH (not sure what it is).
If you want to add "C:\ABC" and "D:\XYZ\123" to the path, call AddToPath twice:Push $INSTDIR
Call AddToPath
The AddToPath function uses GetFullPathName which is why the function only works with one path at a time.Push "C:\ABC"
Call AddToPath
Push "D:\XYZ\123"
Call AddToPath
Remember that on Win9X systems there is a limit to the length of the PATH (not sure what it is).
thanks man
as for the win98 limitation it can be fixed with this line
SHELL=command.com /e:956 /p
in config.sys
as for the win98 limitation it can be fixed with this line
SHELL=command.com /e:956 /p
in config.sys
well
KiCHiK http://nsis.sourceforge.net/archive/...ances=0,11,211 is your code .. can you help me with this ?
should work but unfortnately it does not
Push "C:\ABC"
Call AddToPath
Push "D:\XYZ\123"
Call AddToPath
KiCHiK http://nsis.sourceforge.net/archive/...ances=0,11,211 is your code .. can you help me with this ?
Define not working.
well i think it works fine on winNT but on 9X:
quote from autoexec.bat
quote from autoexec.bat
SET PATH=%PATH%;C:\APACHE2\BINalso if possible could you save me the hassle and make a version of that script for nt only ... i will add the paths to autoexec.bat another way ....
SET PATH=%PATH%;C:\APACHE2\BIN
SET PATH=%PATH%;
SET PATH=%PATH%;
SET PATH=%PATH%;
SET PATH=%PATH%;
SET PATH=%PATH%;
SET PATH=%PATH%;
Are you sure those are not left overs from previous failed attempts?
To make it NT only just remove the part that writes to the autoexec.bat file.
To make it NT only just remove the part that writes to the autoexec.bat file.
100 percent sure
i even deleted autoexec and run the installer 3 times
here is the new autoexec contents
and if i just delete the line wich writes to aeutoexec.bat im still left with a lot of grabage .. checking for os .. etc
i even deleted autoexec and run the installer 3 times
here is the new autoexec contents
SET PATH=%PATH%;C:\APACHE2\BINthis is the code i use
SET PATH=%PATH%;
SET PATH=%PATH%;
SET PATH=%PATH%;
SET PATH=%PATH%;
SET PATH=%PATH%;
SET PATH=%PATH%;
SET PATH=%PATH%;C:\APACHE2\BIN
SET PATH=%PATH%;
SET PATH=%PATH%;
SET PATH=%PATH%;
SET PATH=%PATH%;
SET PATH=%PATH%;
SET PATH=%PATH%;
SET PATH=%PATH%;C:\APACHE2\BIN
SET PATH=%PATH%;
SET PATH=%PATH%;
SET PATH=%PATH%;
SET PATH=%PATH%;
SET PATH=%PATH%;
SET PATH=%PATH%;
Push "C:\apache2\bin"
Call AddToPath
Push "C:\apache2\perl\bin"
Call AddToPath
Push "C:\apache2\php\bin"
Call AddToPath
Push "C:\apache2\mysql\bin"
Call AddToPath
Push "C:\apache2\opssl\bin"
Call AddToPath
Push "C:\apache2\python\bin"
Call AddToPath
Push "C:\apache2\tcl\bin"
Call AddToPath
and if i just delete the line wich writes to aeutoexec.bat im still left with a lot of grabage .. checking for os .. etc
As you can see, there are 7 lines a block there, and there are 3 blocks for 3 times you've ran the installer. This means the function is doing its job, writing a line for each call and doesn't fill it with garbage.
Because autoexec.bat requires a short path name, AddToPath calls GetFullPathName /SHORT to get the short path name. This doesn't work when the path doesn't exist. Are you sure all of those paths exist? Since there isn't really much code there and the first call does work, this is the only explination I can think of.
Because autoexec.bat requires a short path name, AddToPath calls GetFullPathName /SHORT to get the short path name. This doesn't work when the path doesn't exist. Are you sure all of those paths exist? Since there isn't really much code there and the first call does work, this is the only explination I can think of.
yes silly me
i was testing without full directory structure
the apache\bin entry was created because that was the only dir existant
however there is still a problem with removing
i use
btw by garbage i meant things like the un.IsNT function and the calls to it wich would not be needed it i would made the script nt only
bbtw : why is tah function defined twice ?
i was testing without full directory structure
the apache\bin entry was created because that was the only dir existant
however there is still a problem with removing
i use
and it just leaves autoexec.bat as it was
Push "C:\apache2\bin"
Call un.RemoveFromPath
Push "C:\apache2\perl\bin"
Call un.RemoveFromPath
Push "C:\apache2\php\bin"
Call un.RemoveFromPath
Push "C:\apache2\mysql\bin"
Call un.RemoveFromPath
Push "C:\apache2\opssl\bin"
Call un.RemoveFromPath
Push "C:\apache2\python\bin"
Call un.RemoveFromPath
Push "C:\apache2\tcl\bin"
Call un.RemoveFromPath
btw by garbage i meant things like the un.IsNT function and the calls to it wich would not be needed it i would made the script nt only
bbtw : why is tah function defined twice ?
Works fine for me, existing paths or not. Does the install log show anything?
I wouldn't remove IsNT if I were you... Why write to the registry on Windows 98 too?
There are two versions of IsNT because you can't use installer functions in the uninstaller and vice versa.
I wouldn't remove IsNT if I were you... Why write to the registry on Windows 98 too?
There are two versions of IsNT because you can't use installer functions in the uninstaller and vice versa.