这是我做的batman的摩尔斯密码题代码,但是出错,目前发现是set /a的乘法运算我不会写- @echo off
- setlocal enabledelayedexpansion
- set A="17-5-5-1 8-2-2-4 17-10-4-4 9-8-3-1 3-2-5-3 21-7-1-2 15-9-1-3"
- set B="24-5-3-1 10-5-3-4 28-5-1-2 3-2-5-3 21-7-1-2 7-10-4-4 25-5-4-4 32-1-5-3 31-3-5-3 25-7-1-2 12-2-4-1 3-2-5-1"
- rem 把每串分行写进临时文本
- for %%i in ("%a%") do (
- set str=%%i
- set str=!str:"=!
- call echo %%str%% >>tmp_.txt
- )
- rem 设置s_kip等于X版Y行在homebook.txt的第多少行,设置t_ook为那一行的中文母本字符在那一行中文母本的位置的前一位
- for /f "tokens=1,2,3,4 delims=-" %%i in (tmp_.txt) do (
- set /a num1=%%i,num2=%%j,num3=%%k,num4=%%l
- set /a s_kip=(num1-1)*14+num2+2
- set /a t_ook=(num3-1)*4+num4-1
- rem 这个for是取得homebook.txt的第s_kip行的母本。
- for f "tokens=1,2* delims=:" %%a in ('findstr /n .* homebook.txt') do (
- set numm=%%i
- if %s_kip% equ numm set str=%%c
- set str=!str:-=!
- set str=!str: =!
- rem 这个for是获取字符
- for %%I in ("%str%") do set (
- set stt=%%i
- set word=!stt:~!t_ook!,1!
- call echo %%word%%
- )
- )
- )
- pause
- del tmp_.txt
复制代码 我在查错的时候,在set /a s_kip=(num1-1)*14+num2+2这里就提示此时不应该有*14+num2+2
[ 本帖最后由 sgaizxt001 于 2010-4-27 21:34 编辑 ] |