Adding an .exe to default path without adding the directory

For example, I want to add notepad++ to my PATH, however the directory also contains uninstall.exe and several other files/executables and I don't want them to "pollute" my path. Can I just add the one notepad++.exe?


You can add a batch script to a directory that is in your path, that looks something like this:

@echo off

:: Notepad++ execution

if [%1]==[-h] goto :HELP
if [%1]==[--help] goto :HELP
if [%1]==[/?] goto :HELP
goto :START

:START
start "" /i "%ProgramFiles(x86)%\notepad++\notepad++.exe" %*
goto :EOF

:HELP
echo -------------------------------
echo Notepad++ Command Argument Help
echo -------------------------------
echo Usage :
echo.
echo notepad++ [--help] [-multiInst] [-noPlugins] [-lLanguage] [-nLineNumber] [-cColumnNumber] [-xPos] [-yPos] [-nosession] [-notabbar] [-ro] [-systemtray] [-loadingTime] [fullFilePathName]
echo.
echo     --help : This help message
echo     -multiInst : Launch another Notepad++ instance
echo     -noPlugins : Launch Notepad++ without loading any plugin
echo     -l : Launch Notepad++ by applying indicated language to the file to open
echo     -n : Launch Notepad++ by scrolling indicated line on the file to open
echo     -c : Launch Notepad++ on scrolling indicated column on the file to open
echo     -x : Launch Notepad++ by indicating its left side position on the screen
echo     -y : Launch Notepad++ by indicating its top position on the screen
echo     -nosession : Launch Notepad++ without any session
echo     -notabbar : Launch Notepad++ without tabbar
echo     -ro : Launch Notepad++ and make the file to open read only
echo     -systemtray : Launch Notepad++ directly in system tray
echo     -loadingTime : Display Notepad++ loading time
echo     -alwaysOnTop : Make Notepad++ always on top
echo     fullFilePathName : file name to open (absolute or relative path name)
echo.
goto :EOF

:EOF

You can name it notepad++.cmd. The help section allows you to easily get information on the switches.

I put all such scripts and command line programs in a directory which is added to %PATH%: C:\Users\Public\Command\ ...and that directory is synced to all computers and virtual machines.


Create a batch file with contents like the following:

@"C:\Program Files\Git\bin\git.exe" %*

This should be saved as a .bat file, such as git.bat in a directory that's in your PATH.

@ suppresses echoing the command to the invoking shell. The quotations "" prevent white space being interpreted as argument delimiters. %* pastes any arguments to the batch file, to the quoted executable instead.

You can now invoke the executable using the part of the batch file name before .bat. In my case, git.

References:

  • Adding Python to Windows path using a small batch file
  • Adding Python to Windows path using a small batch file - forum thread