@echo off&setlocal enabledelayedexpansion
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
for %%i in (%str%) do set "var=%%i" & set !var:~0,1!=%%i
set "TS="
set /P TS=请输入测试字符:
for /l %%i in (0 1 100) do (
set "T3=!TS:~%%i,1!"
if "!T3!"=="" goto :Res
if defined !T3! (
call set T2=%%!T3!:~0,1%%
if "!T3!"=="!T2!" call set T2=%%!T3!:~1,1%%) else set "T2=!T3!"
set Res=!Res!!T2!
)
:Res
echo.&echo 转换前:!TS!
echo 转换后:!Res!
pause>nul
请问空行上半部分与下半部分的联系,下半部分的原理,特别是Call命令在其中的作用?
我试了去掉CALL命令,输入特殊字符时输出为空格,兄弟能否详解一下CALL的用法。为什么当!T3!为特殊字符时if defined !T3! 会返回False值,而为数字时,则输出为空格符了?特殊字符和数字不能做变量定义?