本帖最后由 pcl_test 于 2015-10-17 20:45 编辑
回复 5# /zhqsystem/zhq
稍微修改下,转换方法没变,可处理字符串或是文件,加入了参数模式,提供了三种执行方式,然并卵…… | @echo off | | call :字母大小写互转 "%~1" %~2 %~3 | | pause&exit | | :字母大小写互转 | | setlocal enabledelayedexpansion | | if "%~1" equ "" ( | | echo;用法: | | echo; 1、call :字母大小写互转 "字符串或文件路径" [/U^|/L] [/F] | | echo; 2、支持外部调用 字母大小写互转.bat "字符串或文件路径" [/U^|/L] [/F] | | echo; 3、支持拖放文件到批处理图标上执行转换 | | echo; /U 转为大写 | | echo; /L 转为小写 | | echo; /F 处理文件 | | goto :eof | | ) else ( | | if "%~2" equ "" ( | | set /p c=请选择转化模式(U=转为大写,L=转为小写): | | if exist "%~1" ( | | call :字母大小写互转 "%~1" /!c! /F | | ) else call :字母大小写互转 "%~1" /!c! | | goto :eof | | ) else ( | | set "#2=%~2" | | set "#2=!#2:-=/!" | | if "%~3" equ "" ( | | if /i "!#2!" equ "/U" (goto :U) else if /i "!#2!" equ "/L" (goto :L) | | ) else ( | | set "#3=%~3" | | set "#3=!#3:-=/!" | | if /i "!#3!" equ "/F" ( | | if /i "!#2!" equ "/U" (goto :U) else if /i "!#2!" equ "/L" (goto :L) | | ) else ( | | if /i "!#3!" equ "/U" ( | | if /i "!#2!" equ "/F" (goto :U) | | ) else if /i "!#3!" equ "/L" ( | | if /i "!#2!" equ "/F" (goto :L) | | ) | | ) | | ) | | echo;参数有误!&goto :eof | | ) | | ) | | :U | | set "var=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" | | goto :Convert | | :L | | set "var=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" | | :Convert | | set "str=%~1" | | if "%~3" equ "" ( | | for %%a in (%var%) do set "str=!str:%%a=%%a!" | | echo;!str! | | ) else ( | | (for /f "tokens=1* delims=:" %%a in ('findstr /n .* "%~1"') do ( | | set "str=%%b" | | if not defined str (echo;) else ( | | for %%a in (%var%) do set "str=!str:%%a=%%a!" | | echo;!str! | | ) | | ))>"%~dp1new_%~nx1" | | ) | | goto :eofCOPY |
|