Unfortunately, i don’t know how to mix the 2 together…
You can also get the fully qualified path of your first argument by using %~f1, but this gives a path according to the current path, which is obviously not what you want. This is to help fill in the gaps in Adrien Plisson’s answer (which should be upvoted as soon as he edits it -): …you’ll observe the following output: %~dp0 is "C:\temp\" If you save this as c:\temp\example.bat and the run it from c:\Users\Public asĬ:\Users\Public>\temp\example.bat. Rem Temporarily change the current working directory, to retrieve a full path Here’s an example that’ll demonstrate each of these techniques: off If you need to support both relative and absolute paths, you can make use of Frédéric Ménez’s solution: temporarily change the current working directory. It does have a shortcoming though: it miserably fails if the first argument is fully-qualified. Personally, I often use the %~dp0%~1 idiom in my batch file, which interpret the first argument relative to the path of the executing batch. You can also get the fully qualified path of your first argument by using %~f1, but this gives a path according to the current working directory, which is obviously not what you want. You can use %~dp0 to get only the path portion of the 0th argument (which is the current script) – this path is always a fully qualified path. In batch files, as in standard C programs, argument 0 contains the path to the currently executing script.