批处理 大小写转换
https://blog.csdn.net/u010270148/article/details/50185563
-
@ECHO OFF
-
SET "UP=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"
-
SET "DOWN=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"
-
SET STR="falfFDFvlSDF.SDFckGmsSDFz;lJf ehmKsd"
-
::需要引号包含否则无法传入空格分号
-
ECHO 原始字符串: %STR%
-
CHOICE /N /C UD /M "转换大写 U, 转换小写 D:"
-
IF ERRORLEVEL 2 ( CALL :DOWNCASE %STR% RESULT ) ELSE (
-
IF ERRORLEVEL 1 CALL :UPCASE %STR% RESULT
-
)
-
ECHO 转换后字符串: %RESULT%
-
PAUSE
-
GOTO :EOF
-
:UPCASE
-
ECHO UPCASE
-
SETLOCAL ENABLEDELAYEDEXPANSION
-
SET $=&SET "#=%~1"
-
ECHO %#%
-
IF DEFINED # (
-
FOR %%A IN (%UP%) DO SET #=!#:%%A=%%A!
-
)
-
ENDLOCAL&SET "%~2=%#%"&EXIT/B
-
:DOWNCASE
-
ECHO DOWNCASE
-
SETLOCAL ENABLEDELAYEDEXPANSION
-
SET $=&SET "#=%~1"
-
IF DEFINED # (
-
FOR %%A IN (%DOWN%) DO SET #=!#:%%A=%%A!
-
)
-
ENDLOCAL&SET "%~2=%#%"&EXIT/B
BAT 字符串大小写转换
2018年03月31日 14:14:50 河乐不为 阅读数:712 标签: BAT批处理字符串大小写转换 更多
个人分类: 批处理
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/linshuhe1/article/details/79768829
前言
今天为了解决一个问题,在 Unity 中我们经常需要通过 IO 读取文件,就像我们读取表格的二进制文件例如:DirtyConf.bytes
, Windows 中默认是对大小写不敏感的,所以读取的时候指定的读取名称可以是 DirtyConf
字母的任意大小写组合,例如:dirtyconf
、 DIRTYCONF
、DIrtyconf
等。
然而对于手机移动端,通过 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"
请按任意键继续. . .