BAT 字符串大小写转换

前言

今天为了解决一个问题,在 Unity 中我们经常需要通过 IO 读取文件,就像我们读取表格的二进制文件例如:DirtyConf.bytes , Windows 中默认是对大小写不敏感的,所以读取的时候指定的读取名称可以是 DirtyConf 字母的任意大小写组合,例如:dirtyconfDIRTYCONFDIrtyconf 等。

然而对于手机移动端,通过 IO 是大小写敏感的,必须与原文件名完全一致才能索取到文件,为了解决此问题,通常都是将文件名默认全部转为小写从而规避此问题。由于我的二进制文件是通过 .bat 的批处理文件生成的,所以干脆在源头解决文件名大小写的问题,省去二次处理的成本。

实现

在批处理中,字符串中的字母大小写转换并不像其他工具语言那么简单,调用一个函数就能完成,而是需要对每个字符进行操作替换。语法其实很简单,就是使用一个 for 循环遍历需要转化的字符串中的字符:

1. 创建一个 test.bat 的批处理文件,内容如下:

@echo off
:: 声明一个用于转换的测试字符串
set SHEET_NAME_LOWER="DirtyConf"
echo.
echo             转化前: %SHEET_NAME_LOWER%
for %%i in (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) do call set SHEET_NAME_LOWER=%%SHEET_NAME_LOWER:%%i=%%i%%
echo.
echo             转化为小写: %SHEET_NAME_LOWER%
for %%i in (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) do call set SHEET_NAME_LOWER=%%SHEET_NAME_LOWER:%%i=%%i%%
echo.
echo             转化为大写: %SHEET_NAME_LOWER%
pause

2. 双击 test.bat 执行批处理,结果如下:


                        转化前: "DirtyConf"

                        转化为小写: "dirtyconf"

                        转化为大写: "DIRTYCONF"
请按任意键继续. . .


参考

  • 使用Windows Bat批处理命令转换字符串大小写

你可能感兴趣的:(批处理)