%0 不是 returns 批处理中的当前路径

%0 doesn't returns current path in batch

我在 hello.cmd

中有这个简单的脚本
for %%a in (*.*) do if not "%%a"=="%0" del %%a

我试过 运行 但似乎当前脚本 hello.cmd 被删除了,据我所知 %0 应该 return 当前文件的路径但是它不要。


我也在另一个脚本中尝试了 运行 echo %0 我得到 returned %0 而不是路径。

所以我想知道为什么它不 return c:\path\to\file\hello.cmd?有没有其他方法获取当前路径?

@ECHO OFF
SETLOCAL
ECHO %%0=%0
ECHO %%~f0=%~f0
ECHO %%~dpnx0=%~dpnx0
ECHO %%~nx0=%~nx0
ECHO %%~p0=%~p0

也许这会有所帮助。注意当你简单地使用 hello 而不是 hello.cmd

时会发生什么