Alright, so lets say we have a file called \"lib.cmd\" it contains
@echo off
GOTO:EXIT
:FUNCTION
echo something
GOTO:EOF
:EXIT
exit /b
T
@echo off
(
rem Switch the context to the library file
ren init.cmd main.cmd
ren lib.cmd init.cmd
rem From this line on, you may call any function in lib.cmd,
rem but NOT in original init.cmd:
call :FUNCTION
rem Switch the context back to original file
ren init.cmd lib.cmd
ren main.cmd init.cmd
)
For further details, see How to package all my functions in a batch file as a seperate file?
Change your lib.cmd
to look like this;
@echo off
call:%~1
goto exit
:function
echo something
goto:eof
:exit
exit /b
Then the first argument passed to the batch file (%~1
) will identify as the function you want to call, so it will be called with call:%~1
, and now you can call it in init.cmd
in this way:
call lib.cmd function