3

I have a .bat file. I want to programmatically get the name of the .bat file. How can I do this?

This is my end goal

"..\lib\nant\nant.exe" -buildfile:nant.build {{pass in name of this file here}}
pause
rmontgomery429
  • 749
  • 1
  • 8
  • 8

2 Answers2

10

Try for /? on the command line. The help shows all kinds of useful filename substitutions, such as:

%~I         - expands %I removing any surrounding quotes (")
%~fI        - expands %I to a fully qualified path name
%~dI        - expands %I to a drive letter only
%~pI        - expands %I to a path only
%~nI        - expands %I to a file name only
%~xI        - expands %I to a file extension only

Replace I with 0 to get just the batch file name, and replace I with 1, 2, 3, etc. to get argument names.

Seth
  • 646
  • 2
  • 6
  • 17
1

The %0% variable will give you the fully qualified path to the batch file, including its name. There may be a better way to get just the name.

Nate
  • 2,151
  • 5
  • 25
  • 41