九九を表示するバッチファイル
練習で作ったバッチファイルです。九九を表示します。九九と言っても、実際には99×99まで対応しています。 *1
バッチファイル
kuku.cmd
@echo off setlocal EnableDelayedExpansion rem 99×99まで対応 echo 縦の最大値(N1)と横の最大値(N2)を入力してください。 set /p N1="N1(1-99):" set /p N2="N2(1-99):" echo. rem ヘッダ行 set HEADER1= ^| set HEADER2=---+ for /l %%I in (1, 1, %N2%) do ( if %%I lss 10 ( set PADDING= ) else ( set PADDING= ) set HEADER1=!HEADER1! !PADDING!%%I set HEADER2=!HEADER2!----- ) echo !HEADER1! echo !HEADER2! rem データ行 for /l %%I in (1, 1, %N1%) do ( if %%I lss 10 ( set PADDING= ) else ( set PADDING= ) set LINE= !PADDING!%%I^| for /l %%J in (1, 1, %N2%) do ( set /a "RESULT=%%I * %%J" if !RESULT! lss 10 ( set PADDING= ) else if !RESULT! lss 100 ( set PADDING= ) else if !RESULT! lss 1000 ( set PADDING= ) else ( set PADDING= ) set LINE=!LINE! !PADDING!!RESULT! ) echo !LINE! ) echo. echo 終了するには何かキーを押してください... pause > NUL exit /b 0
実行結果
9×9を指定した場合
縦の最大値(N1)と横の最大値(N2)を入力してください。 N1(1-99):9 N2(1-99):9 | 1 2 3 4 5 6 7 8 9 ---+--------------------------------------------- 1| 1 2 3 4 5 6 7 8 9 2| 2 4 6 8 10 12 14 16 18 3| 3 6 9 12 15 18 21 24 27 4| 4 8 12 16 20 24 28 32 36 5| 5 10 15 20 25 30 35 40 45 6| 6 12 18 24 30 36 42 48 54 7| 7 14 21 28 35 42 49 56 63 8| 8 16 24 32 40 48 56 64 72 9| 9 18 27 36 45 54 63 72 81 終了するには何かキーを押してください...
15×7を指定した場合
縦の最大値(N1)と横の最大値(N2)を入力してください。 N1(1-99):15 N2(1-99):7 | 1 2 3 4 5 6 7 ---+----------------------------------- 1| 1 2 3 4 5 6 7 2| 2 4 6 8 10 12 14 3| 3 6 9 12 15 18 21 4| 4 8 12 16 20 24 28 5| 5 10 15 20 25 30 35 6| 6 12 18 24 30 36 42 7| 7 14 21 28 35 42 49 8| 8 16 24 32 40 48 56 9| 9 18 27 36 45 54 63 10| 10 20 30 40 50 60 70 11| 11 22 33 44 55 66 77 12| 12 24 36 48 60 72 84 13| 13 26 39 52 65 78 91 14| 14 28 42 56 70 84 98 15| 15 30 45 60 75 90 105 終了するには何かキーを押してください...
*1:Windows XP SP3で確認しました。