In tip 0494, we learned how to parse a batch parameter.
To determine whether a file is located within your PATH, use this script snippet:
set test=%~$PATH:1
if "%test%" EQU "" goto not_in_path
NOTE: %~$PATH:1 searches the folders in your PATH environment variable and returns a fully qualified name for the first occurance found. If not found, or the environment variable does not exist, the expression expands to a null string.
To determine whether batch parameter 2 exists in a list of folder, parameter 1, use:
set list=%1
REM Remove the "s
set list=%list:"=%
set test=%~$list:2
if "%test%" EQU "" goto not_in_path
NOTE: %~$list:2 searches the folders in your list environment variable and returns a fully qualified name for the first occurrence found. If not found, or the environment variable does not exist, the expression expands to a null string.
Example:
call testscript "c:\Documents and Setting\%username%\My Documents;c:;D:\folder" boot.ini
will set test to c:\boot.ini.