How to get the path of the batch script in Windows?
I know that
%0 contains the full path of the batch script, e.g.
path to be equal to
How could I achieve that ?
%~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.
Read more... Read less...
You can use following script to get the path without trailing "\"
for %%i in ("%~dp0.") do SET "mypath=%%~fi"
%~dp0 may be a relative path.
To convert it to a full path, try something like this:
pushd %~dp0 set script_dir=%CD% popd
You can use
%~dp0, d means the drive only, p means the path only, 0 is the argument for the full filename of the batch file.
For example if the file path was C:\Users\Oliver\Desktop\example.bat then the argument would equal C:\Users\Oliver\Desktop\, also you can use the command
set cpath=%~dp0 && set cpath=%cpath:~0,-1% and use the
%cpath% variable to remove the trailing slash.
%cd% will give you the path of the directory from where the script is running.
That would be the
@echo off echo %CD%
%CD% returns the current directory the batch script is in.