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

批处理将字符串中的字母大小写互换

将字符串中的字母大写换成小写,小写换成大写。
如:
  1. set var=abHJ      dfsKHK    aB
复制代码
  1. 要求显示
  2. 转换前:abHJ      dfsKHK    aB
  3. 转换后:ABhj      DFSkhk   Ab
复制代码
技术问题请到论坛发帖求助!

汗,字符窜是随机的,没有规律。
技术问题请到论坛发帖求助!

TOP

回复 10楼 的帖子

set var=abc  ## adf
这种情况下把#号替换成了空格。
技术问题请到论坛发帖求助!

TOP

都忘了这个帖了,帖一下我的代码
  1. @echo off&Setlocal EnableDelayedExpansion
  2. set "Dxie=ABCDEFGHIJKLMNOPQRSTUVWXYZ"
  3. set "Xxie=abcdefghijklmnopqrstuvwxyz"
  4. set var=af SDF jfdi:LKJFIefIfifUfdf  AsZfzG sJ
  5. echo            转换前:%var%
  6. for /l %%a in (0 1 25) do (
  7.   set "D!Dxie:~%%a,1!=!Dxie:~%%a,1!"
  8.   set "X!Xxie:~%%a,1!=!Xxie:~%%a,1!"
  9. )
  10. :loop
  11. set "str=!var:~0,1!"
  12. if "%str%"=="!D%str%!" (set num=!num!!X%str%!) else (
  13.   if defined D!str! (set num=%num%!D%str%!) else set "num=%num%%str%"
  14. )
  15. set "var=%var:~1%"
  16. if defined var goto loop
  17. echo            转换后:%num%
  18. pause
复制代码
技术问题请到论坛发帖求助!

TOP

回复 40楼 的帖子

此类代码始终摆脱不了逐字判断,效率问题,goto次数等于 字符串个数。
兄的代码不觉得for循环次数比36楼要多些吗?
32、33楼虽用goto跳出for,但其实for循环是不会跳出的,只是停止运行里面的命令罢了。也就是说for循环次数等于字符串个数乘26
技术问题请到论坛发帖求助!

TOP

返回列表