返回列表 发帖
发错版块了,应发“原创BAT代码”或“转载BAT代码”版块

TOP

本帖最后由 pcl_test 于 2015-10-16 13:39 编辑

回复 3# /zhqsystem/zhq

转换方法不是原创,但你加入了自己意愿的一些交互进而加工,所以也可视为半原创;
但是我要问,你是要分享代码,还是希望别人帮你完善代码呢?从你的标题和描述,我现在是意会不出来了

TOP

本帖最后由 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;   1call :字母大小写互转 "字符串或文件路径" [/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
1

评分人数

TOP

回复 18# 依山居

python一种类三元表达式
常规语法是这样
if (c.isalpha()): ret += chr(ord(c)&223)
else: ret += c

另几种方式
ret += c.isalpha() and chr(ord(c)&223) or c
ret += [c,chr(ord(c)&223)][c.isalpha()]
2

评分人数

TOP

返回列表