本帖最后由 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 :eof
复制代码
|