Board logo

标题: [文本处理] [已解决]批处理怎么判断字符串是字母还是数字? [打印本页]

作者: 封印    时间: 2011-6-30 12:26     标题: [已解决]批处理怎么判断字符串是字母还是数字?

要求是这样的。。
输入一个字符串,然后判断字符串的开头是字母还是数字。
如果是字母则执行A命令
如果是数字则执行B命令
如:如果输入的是k123,字符串开头一位为字母k。则执行A命令。
(基础不过关啊,这么简单都忘了呵呵。)
作者: Demon    时间: 2011-6-30 12:34

findstr /?
作者: 封印    时间: 2011-6-30 12:54

2# Demon


这个命令早看过了。。
我用得不熟练。。可以帮忙给个代码不?
作者: CrLf    时间: 2011-6-30 13:08

方法不少,可以用findstr,也可以用if
  1. set /p in=input
  2. if "!in!" geq a if !in! leq Z echo 字母
  3. if "!in!" geq 0 if !in! leq 9 echo 数字
复制代码

作者: 封印    时间: 2011-6-30 15:06

4# zm900612


这个可以提取首字符吗??
作者: mxxcgzxxx    时间: 2011-6-30 15:11

本帖最后由 mxxcgzxxx 于 2011-6-30 15:13 编辑
  1. set /p p=
  2. echo %p%|findstr "^[a-Z]" &&echo 字母||echo 非字母开头
  3. echo %p%|findstr "^[0-9]*$" &&echo 纯数字
复制代码

作者: 封印    时间: 2011-6-30 15:12

4# zm900612


这个没效果啊。。。
作者: terse    时间: 2011-6-30 15:59

直接 IF  不行吗
作者: CrLf    时间: 2011-6-30 16:06

7# 封印

如果之前没开变量延迟,那就在代码前加一行 setlocal enabledelayedexpansion
作者: 封印    时间: 2011-6-30 17:27

6# mxxcgzxxx


嗯,这个非常有效,代码也很简洁。。。谢谢了
作者: 封印    时间: 2011-6-30 17:27

7# 封印  

如果之前没开变量延迟,那就在代码前加一行 setlocal enabledelayedexpansion
zm900612 发表于 2011-6-30 16:06

这个,我试了,加上也没效果。。。不过也谢谢你的思路了。。
作者: noender    时间: 2019-8-9 14:22

回复 6# mxxcgzxxx


    你好大神。请问一下判断变量最后一位是数字还是字母。需要怎么改。谢谢
作者: noender    时间: 2019-8-9 14:34

回复 6# mxxcgzxxx


    echo %p%|findstr /i "\d$" &&echo 字母||echo 非字母开头   这样写正确的吗。如果不区分大小写是不是直接i上去就行。?
作者: noender    时间: 2019-8-9 15:20

回复 6# mxxcgzxxx


    我想请问一下。。这个如果是字母我不goto到某处,,是数字就goto到某处,,要怎么修改呢。。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2