1@setlocal
2
3@rem Parse arguments. erlsrv.exe prepends erl arguments prior to first ++.
4@rem Other args are position dependent.
5@set args="%*"
6@for /F "delims=++ tokens=1,2,3" %%I in (%args%) do @(
7    @set erl_args=%%I
8    @call :set_trim node_name %%J
9    @rem Trim spaces from the left of %%K (node_root), which may have spaces inside
10    @for /f "tokens=* delims= " %%a in ("%%K") do @set node_root=%%a
11)
12
13@set releases_dir=%node_root%\releases
14
15@rem parse ERTS version and release version from start_erl.dat
16@for /F "usebackq tokens=1,2" %%I in ("%releases_dir%\start_erl.data") do @(
17    @call :set_trim erts_version %%I
18    @call :set_trim release_version %%J
19)
20
21@set erl_exe="%node_root%\erts-%erts_version%\bin\erl.exe"
22@set boot_file="%releases_dir%\%release_version%\%node_name%"
23
24@if exist "%releases_dir%\%release_version%\sys.config" (
25    @set app_config="%releases_dir%\%release_version%\sys.config"
26) else (
27    @set app_config="%node_root%\etc\app.config"
28)
29
30@if exist "%releases_dir%\%release_version%\vm.args" (
31    @set vm_args="%releases_dir%\%release_version%\vm.args"
32) else (
33    @set vm_args="%node_root%\etc\vm.args"
34)
35
36@%erl_exe% %erl_args% -boot %boot_file% -config %app_config% -args_file %vm_args%
37
38:set_trim
39@set %1=%2
40@goto :EOF
41