数字の並びはテキストファイルにしておきます。実はバッチファイルはテキストファイルを読めるのです。
@echo off for /F %%s in (%1) do echo %%s
これでテキストファイルを表示できます。これは1行ずつ読んでそれをスペースとタブで区切った最初のトークンが%%sにセットされて、それを表示します。区切らない方法もあるのですが、ここでは気にしなくてもよいでしょう。
あとは読み込んだ文字列を結合して、頭から5つの数字を掛け合わせて文字列から頭を1文字削る、という処理を繰り返します。
@echo off set s= for /F %%s in (%1) do call :concat %%s call :max_product %s% echo %ERRORLEVEL% exit /b :concat set s=%s%%1 exit /b 0 :max_product setlocal set s=%1 if "%s:~4,1%" == "" exit /b 0 set /a n = %s:~0,1% * %s:~1,1% * %s:~2,1% * %s:~3,1% * %s:~4,1% call :max_product %s:~1% call :max %n% %ERRORLEVEL% exit /b %ERRORLEVEL% :max setlocal if %1 GTR %2 exit /b %1 exit /b %2