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

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

[复制链接]
发表于 2011-5-13 17:45:17 | 显示全部楼层
29# hanyeguxing


复杂,期待深入的解答
发表于 2011-5-15 10:44:18 | 显示全部楼层
本帖最后由 techon 于 2011-5-15 10:48 编辑

  1. ""        ascii=1
  2. ""        ascii=2
  3. ""        ascii=3
  4. ""        ascii=4
  5. ""        ascii=5
  6. ""        ascii=6
  7. ""        ascii=7
  8. ""        ascii=8
  9. ""        ascii=14
  10. ""        ascii=15
  11. ""        ascii=16
  12. ""        ascii=17
  13. ""        ascii=18
  14. ""        ascii=19
  15. ""        ascii=20
  16. ""        ascii=21
  17. ""        ascii=22
  18. ""        ascii=23
  19. ""        ascii=24
  20. ""        ascii=25
  21. ""        ascii=27
  22. ""        ascii=28
  23. ""        ascii=29
  24. ""        ascii=30
  25. ""        ascii=31
  26. "�"        ascii=127
  27. "'"        ascii=39
  28. "-"        ascii=45
  29. " "        ascii=32
  30. "{TAB}"        ascii=9
  31. ""        ascii=11
  32. " "        ascii=12
  33. "!"        ascii=33
  34. """        ascii=34
  35. "#"        ascii=35
  36. "$"        ascii=36
  37. "%"        ascii=37
  38. "&"        ascii=38
  39. "("        ascii=40
  40. ")"        ascii=41
  41. "*"        ascii=42
  42. ","        ascii=44
  43. "."        ascii=46
  44. "/"        ascii=47
  45. ":"        ascii=58
  46. ";"        ascii=59
  47. "?"        ascii=63
  48. "@"        ascii=64
  49. "["        ascii=91
  50. ""        ascii=92
  51. "]"        ascii=93
  52. "^"        ascii=94
  53. "_"        ascii=95
  54. "`"        ascii=96
  55. "{"        ascii=123
  56. "|"        ascii=124
  57. "}"        ascii=125
  58. "~"        ascii=126
  59. "+"        ascii=43
  60. "<"        ascii=60
  61. "="        ascii=61
  62. ">"        ascii=62
  63. "?"        ascii=128
  64. "0"        ascii=48
  65. "1"        ascii=49
  66. "2"        ascii=50
  67. "3"        ascii=51
  68. "4"        ascii=52
  69. "5"        ascii=53
  70. "6"        ascii=54
  71. "7"        ascii=55
  72. "8"        ascii=56
  73. "9"        ascii=57
  74. "a"        ascii=97
  75. "A"        ascii=65
  76. "b"        ascii=98
  77. "B"        ascii=66
  78. "c"        ascii=99
  79. "C"        ascii=67
  80. "d"        ascii=100
  81. "D"        ascii=68
  82. "e"        ascii=101
  83. "E"        ascii=69
  84. "f"        ascii=102
  85. "F"        ascii=70
  86. "g"        ascii=103
  87. "G"        ascii=71
  88. "h"        ascii=104
  89. "H"        ascii=72
  90. "i"        ascii=105
  91. "I"        ascii=73
  92. "j"        ascii=106
  93. "J"        ascii=74
  94. "k"        ascii=107
  95. "K"        ascii=75
  96. "l"        ascii=108
  97. "L"        ascii=76
  98. "m"        ascii=109
  99. "M"        ascii=77
  100. "n"        ascii=110
  101. "N"        ascii=78
  102. "o"        ascii=111
  103. "O"        ascii=79
  104. "p"        ascii=112
  105. "P"        ascii=80
  106. "q"        ascii=113
  107. "Q"        ascii=81
  108. "r"        ascii=114
  109. "R"        ascii=82
  110. "s"        ascii=115
  111. "S"        ascii=83
  112. "t"        ascii=116
  113. "T"        ascii=84
  114. "u"        ascii=117
  115. "U"        ascii=85
  116. "v"        ascii=118
  117. "V"        ascii=86
  118. "w"        ascii=119
  119. "W"        ascii=87
  120. "x"        ascii=120
  121. "X"        ascii=88
  122. "y"        ascii=121
  123. "Y"        ascii=89
  124. "z"        ascii=122
  125. "Z"        ascii=90
复制代码
用if 比较了一下
其中
"{SUB}"        ascii=26
"{CR}"        ascii=13
"{LF}"        ascii=10

因为没法用变量处理 所以不在比较范围内
发表于 2011-5-15 10:49:51 | 显示全部楼层
28# plp626


1,在 936代码页 下 ⒉ 是小于 3 的,而在 437代码页下是大于 3 的
2,为什么总记挂着他是单字节还是双字节呢? cmd 中所有字符都是按宽字符处理的
在 cmd 中,以 fgets 函数转换字符串为宽字符 ...
hanyeguxing 发表于 2011-5-13 16:31

寒夜孤星怎么什么都知道...
发表于 2011-5-15 10:55:25 | 显示全部楼层
32# techon
与我以前做过的 ASCII (码值从 32 到 126) 测试结果不相同, 可否贴出完全测试代码(或发出文件附件避免特殊字符损失)
发表于 2011-5-15 12:24:18 | 显示全部楼层
本帖最后由 techon 于 2011-5-15 12:47 编辑
32# techon
与我以前做过的 ASCII (码值从 32 到 126) 测试结果不相同, 可否贴出完全测试代码(或发出文件附件避免特殊字符损失)
neorobin 发表于 2011-5-15 10:55


这里还有个问题 就是if 判断的时候 使用

  1. if “字符变量” gtr “字符变量”

  2. if 字符变量 gtr 字符变量
复制代码
带引号和不带引号的排序是不一样, 这个好像跟if 对字符处理的位数有关,究竟是按8位字符处理 还是按16位字符处理还有待研究
发表于 2011-5-15 13:01:31 | 显示全部楼层
35# techon


不带引号是数值比较,而带引号则是字符串比较
发表于 2011-5-15 13:07:01 | 显示全部楼层
32# techon
除了ascii=00外,其余255个ascii字符都可以用变量表示。
PS:你把ASCII表贴出来有啥意义啊,大家都知道滴。第一眼还以为是你的研究结果,晕。。。

35# techon
if “字符变量” gtr “字符变量”,是纯字符比较
if 字符变量 gtr 字符变量,视变量值的不同,系统会选择采用数字比较或字符比较。
 楼主| 发表于 2011-5-15 18:15:42 | 显示全部楼层
32# techon
除了ascii=00外,其余255个ascii字符都可以用变量表示。
PS:你把ASCII表贴出来有啥意义啊,大家都知道滴。第一眼还以为是你的研究结果,晕。。。

35# techon
if “字符变量” gtr “字符变量”, ...
powerbat 发表于 2011-5-15 13:07



看 techon 是新注册会员,你这样会打击新人积极性的。
发表于 2011-5-15 21:48:43 | 显示全部楼层
本帖最后由 abcdshenji 于 2011-5-15 21:50 编辑

37# powerbat


我忍不住得说你两句。。你都知道ascii码是吧。。好考考你。。ascii=15到ascii=35之间都有哪些字符?请迅速回答。。我只想说的是,不要随便打击新人。。还有很多新人(比如我)不知道ASCII表的。。如果你回答不出来。。不好意思请你谦虚点可以吗。。
发表于 2011-5-15 22:10:00 | 显示全部楼层
本帖最后由 qzwqzw 于 2011-5-15 22:22 编辑

30# plp626
基本上可以确定是wcscmp和wcsncmp
还有忽略大小写的_wcsicmp
是按照字典序(lexicographic comparison)进行比较
这个字典序跟代码页相关
主要是在locale中的LC_COLLATE中指定
中文环境下cmd.exe的LC_COLLATE值为
Chinese_People's Republic of China.936
进一步的信息还未获取到
发表于 2011-5-15 23:02:32 | 显示全部楼层
39# abcdshenji
完全没有打击的意思,我只是想抱怨一下“第一眼还以为是你的研究结果”,仔细看才发现是ASCII表——我不是搞编程的,对ASCII也完全不熟(不然不必“仔细”),不查表也不知道ascii=15到ascii=35之间都有哪些字符,只是有这个概念,见到了它知道它是个啥,不至于两眼一抹黑。——其实我想表达的意思是,作者应该把“ASCII表”这几个字交待一下,免得误解。

不要被37楼“会打击新人积极性的”给误导了,呵呵,plp626是牛人,不能和他比。
发表于 2011-5-15 23:13:02 | 显示全部楼层
闻道有先后,术业有专攻,如是而已。
切磋,切磋,如切如磋。
淡定了大家。
发表于 2011-5-17 17:18:47 | 显示全部楼层
本帖最后由 caruko 于 2011-5-17 17:27 编辑

echo %1|findstr "[ABCDEFGHIJKLMNOPQRSTWUYXYZ]">nul &&echo 大写||echo 小写

发现 [A-Z] 的写法有问题
发表于 2011-5-17 17:47:44 | 显示全部楼层
echo %1|findstr "[ABCDEFGHIJKLMNOPQRSTWUYXYZ]">nul &&echo 大写||echo 小写

发现 [A-Z] 的写法有问题
caruko 发表于 2011-5-17 17:18

怪事,我试了下还真是,为什么会出现这么奇怪的现象...
发表于 2011-5-17 20:16:48 | 显示全部楼层
什么叫“怪事”啊?楼上不是经常关注这些帖子吗?24楼就有答案:
if 比较时, 字母表次序是这样的:
43:{a}
44:{A}
45:{b}
46:{B}
...
其实不只是if,findstr也如此。
此帖更全面:[分享]ASCII码单字符 批处理IF命令比较顺序
此帖有原理说明:Windows 代码页与字符顺序
第一类如 if 、sort 等,按以上顺序排列字符;其他 32 位程序绝大多数也是如此,例如资源管理器、外壳程序等等。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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