找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 49120|回复: 13

[文本处理] [已解决]批处理怎么判断字符串是字母还是数字?

[复制链接]
发表于 2011-6-30 12:26:44 | 显示全部楼层 |阅读模式
要求是这样的。。
输入一个字符串,然后判断字符串的开头是字母还是数字。
如果是字母则执行A命令
如果是数字则执行B命令
如:如果输入的是k123,字符串开头一位为字母k。则执行A命令。
(基础不过关啊,这么简单都忘了呵呵。)

评分

参与人数 1PB +2 收起 理由
zm900612 + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2011-6-30 12:34:30 | 显示全部楼层
findstr /?
 楼主| 发表于 2011-6-30 12:54:53 | 显示全部楼层
2# Demon


这个命令早看过了。。
我用得不熟练。。可以帮忙给个代码不?
发表于 2011-6-30 13:08:49 | 显示全部楼层
方法不少,可以用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:48 | 显示全部楼层
4# zm900612


这个可以提取首字符吗??
发表于 2011-6-30 15:11:03 | 显示全部楼层
本帖最后由 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 纯数字
复制代码

评分

参与人数 1PB +2 收起 理由
zm900612 + 2 乐于助人

查看全部评分

 楼主| 发表于 2011-6-30 15:12:28 | 显示全部楼层
4# zm900612


这个没效果啊。。。
发表于 2011-6-30 15:59:58 | 显示全部楼层
直接 IF  不行吗
发表于 2011-6-30 16:06:12 | 显示全部楼层
7# 封印

如果之前没开变量延迟,那就在代码前加一行 setlocal enabledelayedexpansion
 楼主| 发表于 2011-6-30 17:27:04 | 显示全部楼层
6# mxxcgzxxx


嗯,这个非常有效,代码也很简洁。。。谢谢了
 楼主| 发表于 2011-6-30 17:27:49 | 显示全部楼层
7# 封印  

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

这个,我试了,加上也没效果。。。不过也谢谢你的思路了。。
发表于 2019-8-9 14:22:11 | 显示全部楼层
回复 6# mxxcgzxxx


    你好大神。请问一下判断变量最后一位是数字还是字母。需要怎么改。谢谢
发表于 2019-8-9 14:34:13 | 显示全部楼层
回复 6# mxxcgzxxx


    echo %p%|findstr /i "\d$" &&echo 字母||echo 非字母开头   这样写正确的吗。如果不区分大小写是不是直接i上去就行。?
发表于 2019-8-9 15:20:39 | 显示全部楼层
回复 6# mxxcgzxxx


    我想请问一下。。这个如果是字母我不goto到某处,,是数字就goto到某处,,要怎么修改呢。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 04:28 , Processed in 0.021143 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表