bat文件的名称是第0个参数%0%
。但是在标签内部,当标签作为函数调用时,使用call:
语法,它就是标签本身:
@echo off
echo in bat file:%0%
echo calling..
call :USAGE
echo goto..
goto :USAGE
goto :EOF
:USAGE
echo in label:%0%
goto :EOF
在名为t.bat的文件中,这将产生以下内容:output
C:\builds>c:\tmp\t.bat in bat file:c:\tmp\t.bat calling.. in label::USAGE goto.. in label:c:\tmp\t.bat
有没有办法在:call
?
答案 0 :(得分:1)
这不是您正在寻找的,但您可以在调用标签时将批处理文件名指定为参数,从而使其可用作标签执行中的第一个参数:
@echo off
echo My batch file is %0
call :USAGE %0
goto :EOF
:USAGE
echo USAGE my batch file is %1
输出:
d:\温度> test.bat的
我的批处理文件是test.bat
使用我的批处理文件是test.bat
答案 1 :(得分:0)
在标签内的%0
上使用任何变量引用修饰符以获取对当前批处理文件的引用
@echo off
setlocal enableextensions
call :label
endlocal
exit /b
:label
echo label : %0
echo file : %~f0
echo file : %~nx0
goto :eof