最后一次整合...
20 楼的代码完全不会出错。我想在原基础上再加上一些命令处理,可是我写的代码有点问题,所以再麻烦下各位,顺便整合在一起。
想在原基础上再进行这些处理:
1、还要显示输入的是什么
2、输入后,首先进行这些判断:
如果:
直接回车,则执行命令
输入的是 /h,则执行命令然后退出
输入的是 /s,则执行命令然后退出
输入的是 /r,则执行命令然后退出
再判断下面的:
是否以 /h 开头,如果是,则截取 /h 后面的字符,然后执行命令
是否以 /s 开头,如果是,则截取 /s 后面的字符,然后执行命令
以下是我修改后的代码:
■: 原 20 楼的代码 ■: 我加上的
@echo off
setlocal enabledelayedexpansion
:bgn
del t_.txt 1>nul 2>nul
set "n="&set "count="
set /p str=请输入:
if not defined str goto 11
If %str%==/h 执行命令 & exit
If %str%==/s 执行命令 & exit
If %str%==/r 执行命令 & exit
if /i "%str:~,2%"=="/h" (
set str=%str:~2%
执行命令
goto settext
)
if /i "%str:~,2%"=="/s" (
set str=%str:~2%
执行命令
)
:settext
set Text=%str%
:agn
set st=!str:~,1!
>>t_.txt echo.!st!
if not "!str:~1!"=="" (set "str=!str:~1!"&goto :agn)
>>t_.txt echo god
for /f "delims=:" %%a in ('findstr /o .* t_.txt') do (
set /a "n+=1","m=n-1"
set "_!n!=%%a"
if !n! geq 2 (
call set /a "var=%%_!n!%%-%%_!m!%%"
if !var! equ 4 (set /a count+=19) else (set /a count+=10)
)
)
echo %count%
echo %text%
goto :bgn
:11
...
测试结果是,有空格就会出错。
(错误不出在别处,就在我添加的那段里运行中断了)
[ Last edited by tireless on 2008-9-21 at 01:53 AM ]