How to get the path of the batch script in Windows?

Misha Moroshko picture Misha Moroshko · Sep 30, 2010 · Viewed 326.7k times · Source

I know that %0 contains the full path of the batch script, e.g. c:\path\to\my\file\abc.bat

I would path to be equal to c:\path\to\my\file

How could I achieve that ?

Answer

Dean Harding picture Dean Harding · Sep 30, 2010

%~dp0 will be the directory. Here's some documentation on all of the path modifiers. Fun stuff :-)

To remove the final backslash, you can use the :n,m substring syntax, like so:

SET mypath=%~dp0
echo %mypath:~0,-1%

I don't believe there's a way to combine the %0 syntax with the :~n,m syntax, unfortunately.