返回列表 发帖
随风的代码,非常好!学习……
(*^_^*)

TOP

@echo off&setlocal enabledelayedexpansion
set /p var=请按字母先后顺序输入两个字母:
set var1=%var:~0,1%
set var2=%var:~-1,1%
set str=a b c d e f g h i j k l m n o p q r s t u v w x y z
set count=1
:begin
for /f "tokens=%count%" %%i in ("!str!") do (
set /a count+=1
if %%i==!var1! set count1=!count!
if %%i==!var2! set /a count2=!count!-2
goto begin )
echo %count1% %count2%
set /a a=2*(count1-1)
set /a b=2*(count2-count1+1)
echo %a% %b%
set str1=!str:~%a%,%b%!
echo %str1%
pauseCOPY
虽然很麻烦,但是结果还是正确的...

TOP

回复 17楼 的帖子

大家都写的比较好。
我是新来的,看了几天论坛。
发现如 set var=!str:%%a=! 或者var1=%var:~0,1%,var2=%var:~-1,1%。等语句在很多地方都出现过。
不知道在这个赋值语句中后面的“:”或者“:~0,1”“:~-1,1”到底表示的什么意思。
希望前辈指点,谢谢!

TOP

回复 18楼 的帖子

set截取字符详解
http://bbs.bathome.net/viewthread.php?tid=996

set变量字符截取点点通
http://bbs.bathome.net/viewthread.php?tid=40

新手set截取字符练习工具
http://bbs.bathome.net/viewthread.php?tid=1149
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

@set/ps=Plz input:&(call echo e102 '%%s%%'&more /e +1 "%~f0")|debug|findstr "^[^I\-0P]"&pause>nul&exit/b
a100
jmp 104
a104
MOV     BL,[0103]
MOV     AL,[0102]
SUB     BL,AL
LEA     CX,[BX+01]
MOV     AH,02
MOV     DL,[0102]
INT     21
INC     DL
LOOP    0116
INT     20
g
qCOPY
1

评分人数

TOP

看了两天终于吧这个帖子的代码都读懂了,确实写的不错。
呵呵!谢谢版主的耐心解答!

TOP

我也来试试

思路:先截取第二个字母前的字符串(包括该字母),然后把第一个字母前的字符串(包括这个字母)删除,最后补上第一个字母即可
@echo off
setlocal enabledelayedexpansion
set "str= abcdefghijklmnopqrstuvwxyz"
set/p input=请按先后顺序输入两个字母(如 af ,不能输入 fa):
cls
set/a n=0
:a
if not "%input:~1,1%"=="!str:~%n%,1!"  (set/a n+=1&goto :a)
set str=!str:~1,%n%!
set str=!str:*%input:~0,1%=!
echo %input:~0,1%!str!
echo.&pauseCOPY

[ 本帖最后由 sjzong 于 2009-4-25 00:32 编辑 ]
1

评分人数

TOP

学习学习!!!暂时!不会!

TOP

@echo off
echo 请按先后顺序输入两个字母 如:af ,不能输入 fa
set /p input=
cls
for %%b in (a b c d e f g h i j k l m n o p q r s t u v w x y z) do (
if /i "%input:~0,1%"=="%%b" set ok=ok
if /i "%input:~1,1%"=="%%b" set ok=&echo %%b
if defined ok echo %%b
)
echo.&pause&exit
set ok=ok和set ok=&echo %%b
能帮忙解释 随风

[ 本帖最后由 yangyuankui 于 2009-5-1 16:09 编辑 ]

TOP

回复 24楼 的帖子

自己单步运行一下,看看过程,思考一下。
echo 请按先后顺序输入两个字母 如:af ,不能输入 fa
set /p input=
cls
for %%b in (a b c d e f g h i j k l m n o p q r s t u v w x y z) do (
  if /i "%input:~0,1%"=="%%b" set ok=ok
  if /i "%input:~1,1%"=="%%b" set ok=&echo %%b
  if defined ok echo %%b
  pause
)
echo.&pauseCOPY
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

參考以上前輩做的
@echo off&setlocal enabledelayedexpansion
set /p var=Input Alphabet:
set n=-2
set "str=a b c d e f g h i j k l m n o p q r s t u v w x y z"
for %%i in (%str%) do (
set /a n+=2
set %%i=!n!)
set "star=%var:~,1%"
set "end=%var:~-1%"
set /a end1=!%end%!-!%star%!+1
call echo %%str:~!%star%!,%end1%%%
pauseCOPY
我是NO.1 呀﹗不過.......@echo是在菜鳥比賽中....>.<

TOP

@echo off&setlocal enabledelayedexpansion
set char=abcdefghijklmnopqrstuvwxyz
set /p str= "请输入英文字母:"
set c1=%str:~0,1%
set c2=%str:~1,1%
for /l %%a in (0,1,25) do (
set c3=!char:~%%a,1!
if !c1!==!c3! set start=""
if defined start set /p= !c3! <nul
if !c2!==!c3! goto end
)
:end
pauseCOPY

TOP

@echo off&setlocal enabledelayedexpansion
set "str=a b c d e f g h i j k l m n o p q r s t u v w x y z"
set /p zimu=输入两个字母
for %%a in (%str%) do (
if not %%a==%zimu:~1% (echo;%%a) else (echo;%%a&pause&exit)
)
pauseCOPY
@echo off&setlocal enabledelayedexpansion
set n=
set /p zimu=输入任意两个字母:
set zimu1=%zimu:~,1%
set zimu2=%zimu:~1%
for %%a in (a b c d e f g h i j k l m n o p q r s t u v w x y z) do (
if %%a==%zimu1% set n=dui
if !n!==dui echo;%%a
if %%a==%zimu2% set n=cuo
)COPY
pause&exit

TOP

本帖最后由 wutarnow 于 2015-10-20 15:00 编辑
@echo off
setlocal enabledelayedexpansion
set /p ch=按字母顺序输入两个字母:
set result=这两个字母中间是:
set table=a b c d e f g h i j k o m n o p q r s t u v w x y z
for %%I in (%table%) do (
    if /i %%I GTR %ch:~1,1% goto Finish
    if /i %%I GEQ %ch:~,1% set result=!result! %%I
)
:Finish
echo %result%COPY

TOP

各位前辈都没有用到delims=,我也来交个答案。
@echo off
set "var=abcdefghijklmnopqrstuvwxyz"
set /p input=请按先后顺序输入两个字母(如 af ,不能输入 fa):
for /f "tokens=2 delims=%input:~0,1%%input:~1,1%" %%a in ("%var%") do echo;%%a&pause>nulCOPY

TOP

返回列表