サブルーチンでは、%0 はスクリプト名ではなく、サブルーチン名に展開されます。スクリプト名にアクセスする正当な方法はありますか、それとも引数として渡す必要がありますか?
@echo off
call :subroutine %~f0 my parameters
exit /b
:subroutine
shift
echo Script name is %0
echo Parameters: %1 %2
exit /b
callステートメントをただにしたい
call :subroutine my parameters