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

[文本处理] 批处理怎样快速简洁判断一个字母是大写还是小写?

[复制链接]
发表于 2011-5-12 21:20:38 | 显示全部楼层 |阅读模式
如题,这个问题的思考源于 这个帖子
16进制数据最小体积存储
在此求助下。。谢谢。
发表于 2011-5-12 21:48:19 | 显示全部楼层
这个还是容易吧:
  1. @echo off&setlocal enabledelayedexpansion
  2. for %%a in (a-A b-B c-C d-D e-E f-F g-G h-H i-I j-J k-K l-L m-M n-N o-O p-P q-Q r-R s-S t-T u-U v-V w-W x-X y-Y z-Z) do (
  3.      for /f "tokens=1* delims=-" %%b in ("%%a") do set "%%b=%%c"
  4. )
  5. set /p str=请输入:
  6. if "!%str%!" equ "%str%" (
  7.    echo 大写
  8.   ) else (
  9.    echo 小写
  10. )
  11. pause>nul
复制代码

评分

参与人数 2技术 +2 收起 理由
Hello123World + 1 乐于助人
plp626 + 1 谢谢参与

查看全部评分

 楼主| 发表于 2011-5-12 21:51:11 | 显示全部楼层
查表法,恩,是很快。

===============
有代码再短的么? 比如变量的~那种扩展可以把它判断出来的么?
发表于 2011-5-12 21:54:49 | 显示全部楼层

  1. @echo off
  2. set "ans=小写"
  3. set /p str=请输入:
  4. if "%str%" geq  "A" if "%str%" leq "Z" set "ans=大写"
  5. echo %ans%
  6. pause>nul
复制代码

评分

参与人数 2PB -1 技术 +1 收起 理由
Hello123World -1 这个代码有问题,输入小b,显示大写。
plp626 + 1 very good!

查看全部评分

 楼主| 发表于 2011-5-12 22:01:35 | 显示全部楼层
好的,此贴已结

如果有哪位能找到比四楼更简洁的方法,告诉我好让我佩服一下。。。
发表于 2011-5-12 22:01:53 | 显示全部楼层
本帖最后由 batman 于 2011-5-12 22:12 编辑

  1. @echo off
  2. set /p str=请输入:
  3. subst %str%: %cd%
  4. cd /d %str%:
  5. for %%a in (%str%) do (
  6.      if "%%~da" equ "%%a:" (
  7.         echo 大写
  8.        ) else (
  9.        echo 小写
  10.      )
  11.      subst /d %%a:
  12. )
  13. pause>nul
复制代码
 楼主| 发表于 2011-5-12 22:06:09 | 显示全部楼层
6# batman


你测试了? 我这里不行啊,

%~da是扩展到默认分区,是个固定值吧。

x 试试,
 楼主| 发表于 2011-5-12 22:08:08 | 显示全部楼层
不是x,

A试试。。。
发表于 2011-5-12 22:12:20 | 显示全部楼层
这下6楼行了
 楼主| 发表于 2011-5-12 22:14:07 | 显示全部楼层
本帖最后由 plp626 于 2011-5-12 22:15 编辑
  1. for /f "delims=abcdefghijklmnopqrstuvwxyz" %%a in (":%1")do if %%a=: (echo 小写)else echo 大写
复制代码
我刚想到的方法,但比起四楼的还是少了些简洁。

======================


继续等待 佩服的人 出现。。。。

评分

参与人数 1技术 +1 收起 理由
batman + 1 delims用得妙

查看全部评分

 楼主| 发表于 2011-5-12 22:17:30 | 显示全部楼层
9# batman


恩,可我还是喜欢你四楼的代码,,,

subst 可是外部命令啊,速度,,速度。。。。?
发表于 2011-5-12 22:18:34 | 显示全部楼层
11# plp626
只是多提供一种思路罢了。。。
发表于 2011-5-12 22:26:23 | 显示全部楼层
四楼还可以短一点点:

  1. @echo off
  2. set "ans=大写"
  3. set /p str=请输入:
  4. if "%str%" geq "a" set "ans=小写"
  5. echo %ans%
  6. pause>nul
复制代码
 楼主| 发表于 2011-5-12 22:33:46 | 显示全部楼层
13# batman

精简代码要这样,看,多简洁,还是你的思路。
  1. if %1 geq a (echo 小写)else 大写
复制代码
发表于 2011-5-12 23:17:23 | 显示全部楼层
对于4L 代码。。有问题吧
比如输入 b
输入 c
。。。

对于13L同样。。。输入 Q 显示小写 。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 10:29 , Processed in 0.019924 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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