当我跑步时
call :label
:label
echo %~0
pause
而不是回显" C:\ Users \ Me \ Desktop \ Batch.bat",它回声":标签"。 我希望能够回应" C:\ Users \ Me \ Desktop \ Batch.bat"而不是回应":标签"。
我不想在调用之前求助于存储%~0:标签。
可以吗?如果是这样,怎么办呢?
答案 0 :(得分:4)
没有任何特殊要求让它正常工作
@echo off
setlocal enableextensions disabledelayedexpansion
call :label
goto :eof
:label
echo %0
echo %~f0
echo %~nx0
此代码将显示
W:\test>labelTest.cmd
:label
W:\test\labelTest.cmd
labelTest.cmd
如果使用引用文件名/路径/ ...元素的%0
子例程参数的任何修饰符,它们将强制使用批处理文件作为数据源而不是标签名称。
答案 1 :(得分:3)
call :label "%~0"
:label
echo %~0 %~1
pause
但重点是逃避了我。