如何重新启动批处理文件本身?

Kev*_*ong 4 batch command-line

如何自动重新启动批处理本身?

如果批处理的文件名发生变化,

start <fixedbatchfilename>
Run Code Online (Sandbox Code Playgroud)

一定会失败,因为虽然文件名发生了变化,但命令却没有变化。

有没有可行的办法,比如

start <autogetbatchfilenameitself> ?
Run Code Online (Sandbox Code Playgroud)

Rik*_*Rik 5

您可以在同一目录中调用%0以再次调用批处理本身。

这是一个小批处理文件,您可以自己查看变量:

@echo off
echo Filename exactly as called: %0
echo Driveletter:                %~d0
echo Path:                       %~p0
echo Filename:                   %~n0
echo Extension:                  %~x0
echo Complete:                   %~d0%~p0%~n0%~x0
Run Code Online (Sandbox Code Playgroud)

例子:

echo The following will cause this to loop until Ctrl+C is pressed:
%0
Run Code Online (Sandbox Code Playgroud)

或者:

echo The following will cause this to loop until Ctrl+C is pressed:
%~d0%~p0%~n0%~x0
Run Code Online (Sandbox Code Playgroud)