Get current batchfile directory
Get current batchfile directory
Get current batchfile directory
Re: Get current batchfile directory
System read-only variable `%CD%` keeps the path of the caller of the batch, not the batch file location.
You can get the name of the batch script itself as typed by the user with `%0` (e.g. `scripts\mybatch.bat`). [Parameter extensions](http://ss64.com/nt/syntax-args.html) can be applied to this so `%~dp0` will return the Drive and Path to the batch script (e.g. `W:\scripts\`) and `%~f0` will return the full pathname (e.g. `W:\scripts\mybatch.cmd`).
You can refer to other files in the same folder as the batch script by using this syntax:
```
CALL %0\..\SecondBatch.cmd
```
This can even be used in a subroutine, `Echo %0` will give the call label but, `echo "%~nx0"` will give you the filename of the batch script.
When the `%0` variable is expanded, the result is enclosed in quotation marks.
[More on batch parameters](http://ss64.com/nt/syntax-args.html).
You can get the name of the batch script itself as typed by the user with `%0` (e.g. `scripts\mybatch.bat`). [Parameter extensions](http://ss64.com/nt/syntax-args.html) can be applied to this so `%~dp0` will return the Drive and Path to the batch script (e.g. `W:\scripts\`) and `%~f0` will return the full pathname (e.g. `W:\scripts\mybatch.cmd`).
You can refer to other files in the same folder as the batch script by using this syntax:
```
CALL %0\..\SecondBatch.cmd
```
This can even be used in a subroutine, `Echo %0` will give the call label but, `echo "%~nx0"` will give you the filename of the batch script.
When the `%0` variable is expanded, the result is enclosed in quotation marks.
[More on batch parameters](http://ss64.com/nt/syntax-args.html).