Windows 批处理文件是否可以根据用户输入的名称获得自己的名称?

Windows 批处理文件是否可以根据用户输入的名称获得自己的名称?

在 Bash 脚本中,$0变量会给出用户输入的脚本名称。例如,如果用户使用以下命令调用脚本foo

$ ../bar/foo

...那么在脚本中将$0"../bar/foo”

然而,在 Windows .bat 文件中,类似的变量%0及其许多 变体似乎都给出了 bat 文件的子集扩展规范路径— 或者他们在 Windows 11 上这样做。

例如,在上面的例子中,%0产生了类似于的东西C:\Users\paul\whatever\blah\bar\foo.bat,而不是..\bar\foo所需的东西。


了解当前脚本的名称很有用当用户输入时当生成帮助/使用消息以建议替代调用时,例如:

$ ../bar/foo --zonkle

Zonkle is unavailable on this system. Try the wonkle option instead:

  ../bar/foo --wonkle

$

在 Windows 上这可能吗?

相关内容