Board logo

标题: 批处理显示连序字母? [打印本页]

作者: online365     时间: 2007-1-9 17:32    标题: 批处理显示连序字母?

比如我输入 af  就显示
a
b
c
d
e
f

每个字母占一行啊``不知能不能实现..
作者: qasa     时间: 2007-1-9 17:38
我看,应该不行的了,除非可以把字符转换成数字来运行,运行后再由数字转换成字母,这和我之前发的ASSCII码和字母数字之间转换贴就是这个道理。
作者: PPdos     时间: 2007-1-9 18:12    标题: 可以实现~~~~ 论坛搜索先~~~~~~


作者: namejm     时间: 2007-1-10 00:18
  演示代码如下(没有做容错检测):
@echo off
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
:begin
cls
set flag=0
set var=
set input=
set /p input=      请输入字母范围(如af):
for %%i in (%str%) do call :pickup %%i

:end
pause
goto begin

:pickup
if /i "%1"=="%input:~0,1%" set flag=1
if /i "%1"=="%input:~-1%" set flag=2
if %flag% equ 1 echo %1
if %flag% equ 2 echo %1&goto end
goto :eof

作者: youxi01     时间: 2007-1-10 02:09
也来玩^_^
@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
for %%i in (%str%) do set/a dec+=1 & set %%i=!dec! & set str!dec!=%%i
set en=
set /p en=请输入字母范围(如af):
set/a num1=!%en:~0,1%!,num2=!%en:~-1%!
for /l %%i in (%num1%,1,%num2%) do echo !str%%i!

pause>nul

作者: youxi01     时间: 2007-1-10 02:21
还有一个好理解一点的:
@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 en=
set /p en=请输入字母范围(如af):
set str1=%en:~0,1%
set str2=%en:~-1%
for %%i in (%str%) do if %%i geq !str1! if %%i leq !str2! echo %%i
pause>nul

作者: online365     时间: 2007-1-10 07:55
谢谢两位了..  ^_^
作者: PPdos     时间: 2007-1-10 09:05    标题: 我还没玩呢 ^.^#

@echo off
:begin
set /p a="老规矩 嘻嘻 :"
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 echo %%i|findstr [%a:~0,1%-%a:~-1%]
goto:begin
作者: namejm     时间: 2007-1-10 09:31
  那我再来一段:
@echo off
:begin
cls
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 input=
set /p input=      请输入字母范围(如af):
call set str=%%str:%input:~0,1%=-☆%input:~0,1%%%
call set str=%%str:%input:~-1%=%input:~-1%☆%%
for /f "tokens=2 delims=☆" %%i in ("%str%") do set str=%%i
for %%i in (%str%) do echo %%i
pause
goto begin
  再精简一下。

[ Last edited by namejm on 2007-1-9 at 08:35 PM ]
作者: jmz573515     时间: 2007-1-10 22:38
揍个热闹
m="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"
s=split(m,";")
b=inputbox("请输入字母范围(如af):","系统提示")
l=0
for i=0 to 25
if s(i)=left(b,1) then
l=1
end if
if l=1 then
h=h&vbcrlf&s(i)
end if
if s(i)=right(b,1) then exit for
next
msgbox h

作者: youxi01     时间: 2007-1-11 02:26


  Quote:
Originally posted by jmz573515 at 2007-1-10 10:38 PM:
揍个热闹
[code]
m="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"
s=split(m,";")
b=inputbox("请输入字母范围(如af):","系统提示")
l= ...

如果是vbs的话,就不用这么麻烦拉!用一个简单的for循环就搞定拉
作者: jmz573515     时间: 2007-1-11 02:57
还望11楼的朋友指教,我是刚学VBS也不是很了解。谢谢!
作者: huzixuan     时间: 2007-2-4 08:52
今天我终于看懂了老大 5 楼的代码.
作者: vkill     时间: 2007-2-4 10:41
ascii 码不知道可以用的上吗?
作者: namejm     时间: 2007-2-4 10:57
  用来处理ASCII码?
作者: anqing     时间: 2007-2-4 12:24
全是批高呀
作者: vkill     时间: 2007-2-4 18:25


  Quote:
Originally posted by namejm at 2007-2-4 10:57:
  用来处理ASCII码?

a-z 的 ASCII 10进制是 90-122 ,我在想可不可以在这做点文章?
作者: scriptor     时间: 2007-2-5 01:09
要回家过年的了

再来看看,偷吃点,吃饱了就回家再吃

呵呵

一个小小的问题,引发了这么多的好的想法

实在佩服了。
作者: q1a2z3q1a2z3     时间: 2007-3-13 02:38
高人啊,佩服了
作者: minmin888     时间: 2007-5-8 17:36
6,9楼写得好!学习!
作者: huzixuan     时间: 2007-5-8 17:50


  Quote:
Originally posted by youxi01 at 2007-1-11 02:26:

如果是vbs的话,就不用这么麻烦拉!用一个简单的for循环就搞定拉


input = inputbox("输入2个字母","输入","af")
str1 = mid(input,1,1)
str2 = mid(input,2,2)
for i = asc(str1) to asc(str2)
str = str&" "&chr(i)
next
msgbox str