- @echo off
- setlocal enabledelayedexpansion
- Rem 开启变量延迟
-
- set str=aA bB cC dD eE fF gG hH iI jJ kK lL mM nN oO pP qQ rR sS tT uU vV wW xX yY zZ
- Rem 给变量str赋值
-
- for %%i in (%str%) do set "var=%%i" & set !var:~0,1!=%%i
- Rem 将aA赋值给变量a,bB赋值给变量b,cC赋值给变量c,。。。zZ赋值给变量z
-
- set "TS="
- Rem 初始化变量TS
-
- set /P TS=请输入测试字符:
- Rem 提示输入,假设输入字串为aBc
-
- for /l %%i in (0 1 100) do (
- Rem 从0到100循环101次
-
- set "T3=!TS:~%%i,1!"
- Rem 循环第1次,变量T3赋值为a;循环第2次,T3赋值为B;循环第3次,T3赋值为c
-
- if "!T3!"=="" goto :Res
- Rem 循环第4次时,T3的值为空,就跳转到标签Res
-
- if defined !T3! (
- Rem 循环第1~3次时,T3的值不为空,条件为真,执行下面的语句
-
- call set T2=%%!T3!:~0,1%%
- Rem 循环第1次时,T3的值为a,而变量a的值为aA,取第1位a,变量T2被赋值为a;
- Rem 循环第2次时,T3的值为B,而变量B的值为bB,取第1位b,变量T2赋值为b;以此类推。
-
- if "!T3!"=="!T2!" call set T2=%%!T3!:~1,1%%
- Rem 循环第1次,T3的值a与T2的值a相等,那么截取aA的第2位A,变量T2被赋值为A;
- Rem 循环第2次,T3的值B与T2的值b不相等,那么T2不重新赋值,即T2的值是b;以此类推
-
- ) else set "T2=!T3!"
- Rem 到循环第4次时,因为T3的值为空,所以将空值赋给T2,就是初始化变量T2
-
- set Res=!Res!!T2!
- Rem 将每次循环得到的变量T2的值串接起来
-
- )
- :Res
- echo.&echo 转换前:!TS!
- echo 转换后:!Res!
-
- pause
复制代码
|