Hi everyone, Im trying to convert a batch program into visual basic and since I don't program in batch, I was wondering if anyone can please help. I am wondering if someone can explain what this script is doing:
%SAY% Generating Multi-Boot Sector...
ECHO.>>"%TMP%\PART_1.BIN"
ECHO.>>"%TMP%\PART_1.BIN"
ECHO %ANS%>>"%TMP%\PART_1.BIN"
ECHO.>>"%TMP%\PART_1.BIN"
FOR /F "TOKENS=1,* DELIMS=/" %%A IN ('FINDSTR /I /C:"CUSTOM_BOOT_MESSAGE" "%WD%\OS.INI"') DO SET CMSG=%%B
:GENERATE_BOOT_CLASS
CALL :SET_CLASS
IF NOT DEFINED CLASS GOTO FIX_BYTES
:GENERATE_BOOT_OS
CALL :SET_OS
IF NOT DEFINED OS_REF GOTO GENERATE_BOOT_CLASS
SET COUNT=0
FOR %%A IN (%OS_LIST%) DO (
SET /A COUNT=!COUNT! + 1
IF "%OS_REF%" EQU "%%A" GOTO GENERATE_BOOT_MENU
)
:GENERATE_BOOT_MENU
FOR /F "TOKENS=%COUNT%" %%A IN ("A B C D E F G H I J K L M N"
DO SET LETTER=%%A
ECHO [%LETTER%] %NAME% >>"%TMP%\PART_1.BIN"
ECHO %OS_REF% >>"%TMP%\PART_2.BIN"
GSAR -o "-s:x0D:x0A" -r "%TMP%\PART_2.BIN" %NUL%
GSAR -o "-s:x20" -r "%TMP%\PART_2.BIN" %NUL%
FOR /F "TOKENS=1" %%A IN ("%OS_LIST%"
DO IF "%%A" EQU "%OS_REF%" GSAR -o "-s%OS_REF%" "-r:x0%NUM%:x04%OS_REF%" "%TMP%\PART_2.BIN" %NUL%
GOTO GENERATE_BOOT_OS
:FIX_BYTES
ECHO.>> "%TMP%\PART_1.BIN"
ECHO.>> "%TMP%\PART_1.BIN"
ECHO %CMSG% >>"%TMP%\PART_1.BIN"
SET BYTES=
SET BYTEC=
ECHO ##>>"%TMP%\PART_1.BIN"
FOR /F "TOKENS=1,2 DELIMS=x " %%A IN ('GSAR.EXE -b -h "-s##:x0D:x0A" "%TMP%\PART_1.BIN"') DO IF "%%A" EQU "0" SET /A BYTEC=0x1FD - 0x%%B
FOR /L %%A IN (1,1,%BYTEC%) DO SET BYTES=:x00!BYTES!
GSAR -o "-s:x0D:x0A##:x0D:x0A" "-r:x00:x00%BYTES%" "%TMP%\PART_1.BIN" %NUL%
SET BYTES=
SET BYTEC=
ECHO ##>>"%TMP%\PART_2.BIN"
FOR /F "TOKENS=1,2 DELIMS=x " %%A IN ('GSAR.EXE -b -h "-s##:x0D:x0A" "%TMP%\PART_2.BIN"') DO IF "%%A" EQU "0" SET /A BYTEC=0xC6 - 0x%%B
FOR /L %%A IN (1,1,%BYTEC%) DO SET BYTES=:x00!BYTES!
GSAR -o "-s##:x0D:x0A" "-r%BYTES%:x55:xAA" "%TMP%\PART_2.BIN" %NUL%
COPY /Y /B "%WD%\FILES\PRE.BIN" + "%TMP%\PART_1.BIN" + "%TMP%\PART_2.BIN" "%TMP%\FINAL.BIN">NUL
:FIX_BYTES_DONE
%SAY% Generating Multi-Boot Sector...
ECHO.>>"%TMP%\PART_1.BIN"
ECHO.>>"%TMP%\PART_1.BIN"
ECHO %ANS%>>"%TMP%\PART_1.BIN"
ECHO.>>"%TMP%\PART_1.BIN"
FOR /F "TOKENS=1,* DELIMS=/" %%A IN ('FINDSTR /I /C:"CUSTOM_BOOT_MESSAGE" "%WD%\OS.INI"') DO SET CMSG=%%B
:GENERATE_BOOT_CLASS
CALL :SET_CLASS
IF NOT DEFINED CLASS GOTO FIX_BYTES
:GENERATE_BOOT_OS
CALL :SET_OS
IF NOT DEFINED OS_REF GOTO GENERATE_BOOT_CLASS
SET COUNT=0
FOR %%A IN (%OS_LIST%) DO (
SET /A COUNT=!COUNT! + 1
IF "%OS_REF%" EQU "%%A" GOTO GENERATE_BOOT_MENU
)
:GENERATE_BOOT_MENU
FOR /F "TOKENS=%COUNT%" %%A IN ("A B C D E F G H I J K L M N"
ECHO [%LETTER%] %NAME% >>"%TMP%\PART_1.BIN"
ECHO %OS_REF% >>"%TMP%\PART_2.BIN"
GSAR -o "-s:x0D:x0A" -r "%TMP%\PART_2.BIN" %NUL%
GSAR -o "-s:x20" -r "%TMP%\PART_2.BIN" %NUL%
FOR /F "TOKENS=1" %%A IN ("%OS_LIST%"
GOTO GENERATE_BOOT_OS
:FIX_BYTES
ECHO.>> "%TMP%\PART_1.BIN"
ECHO.>> "%TMP%\PART_1.BIN"
ECHO %CMSG% >>"%TMP%\PART_1.BIN"
SET BYTES=
SET BYTEC=
ECHO ##>>"%TMP%\PART_1.BIN"
FOR /F "TOKENS=1,2 DELIMS=x " %%A IN ('GSAR.EXE -b -h "-s##:x0D:x0A" "%TMP%\PART_1.BIN"') DO IF "%%A" EQU "0" SET /A BYTEC=0x1FD - 0x%%B
FOR /L %%A IN (1,1,%BYTEC%) DO SET BYTES=:x00!BYTES!
GSAR -o "-s:x0D:x0A##:x0D:x0A" "-r:x00:x00%BYTES%" "%TMP%\PART_1.BIN" %NUL%
SET BYTES=
SET BYTEC=
ECHO ##>>"%TMP%\PART_2.BIN"
FOR /F "TOKENS=1,2 DELIMS=x " %%A IN ('GSAR.EXE -b -h "-s##:x0D:x0A" "%TMP%\PART_2.BIN"') DO IF "%%A" EQU "0" SET /A BYTEC=0xC6 - 0x%%B
FOR /L %%A IN (1,1,%BYTEC%) DO SET BYTES=:x00!BYTES!
GSAR -o "-s##:x0D:x0A" "-r%BYTES%:x55:xAA" "%TMP%\PART_2.BIN" %NUL%
COPY /Y /B "%WD%\FILES\PRE.BIN" + "%TMP%\PART_1.BIN" + "%TMP%\PART_2.BIN" "%TMP%\FINAL.BIN">NUL
:FIX_BYTES_DONE