使此代码在第一个字符

时间:2016-02-24 02:50:53

标签: batch-file command

我获得了一些批处理代码,它接受一个变量并将其转换为大写字符。即约书亚将成为约书亚。我一直在阅读所用命令的文档,我无法解释代码的工作方式,但我想修改代码,因此它只会将第一个字符大写。即约书亚的约书亚。我假设这只是修改代码使用的'loop'(?)的问题。任何帮助或建议表示赞赏。

代码 -

 :toUpper str -- converts lowercase character to uppercase
 if not defined %~1 EXIT /b
 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" "ä=Ä"
        "ö=Ö" "ü=Ü") do (
call set %~1=%%%~1:%%~a%%
)
EXIT /b

注意:我在SET帮助文档中找不到任何对多重%符号含义的引用。我猜这是问题的关键所在。

干杯

编辑:如果有人能够对代码中发生的事情进行非常简短的解释,那也很棒!我理解的唯一部分是用小写字母代替大写字母

1 个答案:

答案 0 :(得分:1)

首字母大写需要采用不同的方法:

doSomeStuff

要理解这一点,您可能需要查看delayed expansionvariable substringstring replacement。请注意,替换字母的搜索不区分大小写,但replacement itself is