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

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

[复制链接]
发表于 2015-12-15 10:30:54 | 显示全部楼层
  1. """
  2. python大小写字符互换.py
  3. http://www.bathome.net/thread-2740-1-1.html
  4. 依山居 4:47 2015/12/15
  5. """
  6. s="sD8F8S88f899f9DiIujUUuj JhHUuH hH$%"
  7. def fn(x):
  8.     if x.islower():
  9.         return x.upper()
  10.     elif x.isupper():
  11.         return x.lower()
  12.     else:
  13.         return x
  14. result=''.join([fn(r) for r in list(s)])
  15. print(result)

  16. """
  17. 输出:
  18. Sd8f8s88F899F9dIiUJuuUJ jHhuUh Hh$%
  19. """
复制代码
发表于 2017-2-28 13:03:59 | 显示全部楼层
本帖最后由 taofan712 于 2017-2-28 13:06 编辑

  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 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 echo;%%a)>temp.txt
  3. :loop
  4. cls&echo;输入混杂大小写的字母串(不超过15位)&set /p var=
  5. for /l %%b in (0,1,15) do (
  6.         set "zifu=!var:~%%b,1!"
  7.         if "!zifu!"=="" pause>nul&goto loop
  8.         for /f "tokens=2 delims=_" %%c in ('findstr /b "!zifu!" temp.txt') do         set /p=%%c<nul
  9. )
  10. pause&goto loop
复制代码
有趣哈,想了好一会儿才搞出个答案。

评分

参与人数 1技术 +1 收起 理由
老刘1号 + 1 凑乎,鼓励下

查看全部评分

发表于 2017-3-3 19:29:57 | 显示全部楼层
要点积分看文章。
发表于 2017-3-3 19:30:13 | 显示全部楼层
要点积分看文章。
发表于 2017-3-3 19:57:01 | 显示全部楼层
要点积分看文章。
发表于 2017-3-3 20:46:52 | 显示全部楼层
回复 66# niudd


    你这样水真的好?
附一个:

  1. ' 2>NUL&@(CLS&Set /p STR=键入:&CALL CSCRIPT -e:VBSCRIPT "%~0" "%%STR%%"&PAUSE&EXIT)
  2. Option Explicit
  3. Dim New_,i
  4. For i = 1 To Len(Wscript.Arguments(0))
  5.         If UCase(Mid(Wscript.Arguments(0),i,1))=Mid(Wscript.Arguments(0),i,1) Then
  6.                 New_=New_&LCase(Mid(Wscript.Arguments(0),i,1))
  7.         ElseIf LCase(Mid(Wscript.Arguments(0),i,1))=Mid(Wscript.Arguments(0),i,1) Then
  8.                 New_=New_&UCase(Mid(Wscript.Arguments(0),i,1))
  9.         Else
  10.                 New_=New_&Mid(Wscript.Arguments(0),i,1)
  11.         End If
  12. Next
  13. Wscript.echo New_
复制代码

评分

参与人数 1技术 +1 收起 理由
happy886rr + 1 VB老练,666

查看全部评分

发表于 2018-7-25 22:30:50 | 显示全部楼层
  1. @echo off
  2. setlocal enabledelayedexpansion

  3. REM 字符串大小写互换
  4. set BigLetter=A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
  5. set SmallLetter=abcdefghijklmnopqrstuvwxyz

  6. set startIndex=0
  7. for %%i in (%BigLetter%) do (
  8.         call set BigIndex=%%SmallLetter:~!startIndex!,1%%
  9.         set arrayBig[!BigIndex!]=%%i
  10.         set arraySmall[%%i]=!BigIndex!
  11.         set /a startIndex+=1
  12. )



  13. set /p str=请输入要转换的字符串:
  14. echo %str%>str.txt
  15. echo .>>str.txt
  16. REM 获取输入字符串的长度
  17. for /f "tokens=1 delims=:" %%a in ('findstr /o .* str.txt') do (
  18.         set  /a strlen=%%a-2
  19. )

  20. echo string len=!strlen!
  21. set /a loopindex=!strlen!-1
  22. for /l %%i in (0, 1, !loopindex!) do (
  23.         set letter=!str:~%%i, 1!
  24.        
  25.         call set smallchar=%%arraySmall[!letter!]%%
  26.         call set bigchar=%%arrayBig[!letter!]%%

  27.         if "!letter!" EQU "!smallchar!" (
  28.                 set retstr=!retstr!!bigchar!
  29.          ) else if "!letter!" EQU "!bigchar!" (
  30.                 set retstr=!retstr!!smallchar!
  31.          ) else (
  32.                 set retstr=!retstr!!letter!
  33.          )         
  34. )

  35. echo retstr=!retstr!
复制代码
发表于 2023-9-19 06:16:01 | 显示全部楼层
回复 53# CrLf


    没看出哪哪里用了 ascmap ,结果是:
字符串=WwW.baThOME.net
结 果 =RRh}|OJH`h
发表于 2023-9-19 07:04:36 | 显示全部楼层
试了一下tr a-zA-Z A-Za-z似乎可以
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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