标题: 小写转大写
[打印本页]
作者: pusofalse
时间: 2008-6-28 07:41
标题: 小写转大写
思路,for %~sa增强扩展。。。
@echo off&setlocal enabledelayedexpansion
:1
set/p var=输入小写字母,多个字母用空格隔开:
if not defined var goto 1
for %%a in (%var%) do echo abc>"%%a a.tmp_"
for /f "delims=" %%a in ('dir/b *.tmp') do (
set name=%%~sna
set nam=!nam!!name:~,1!
)
echo.&echo %nam%
del *.tmp_
pause>nul
作者: HAT
时间: 2008-6-28 10:12
思路很有个性,呵呵。
不过还是越简单越好吧。
@echo off
set str=157924680
for %%a in ("0=零" "1=一" "2=二" "3=三" "4=四" "5=五" "6=六" "7=七" "8=八" "9=九") do call set str=%%str:%%~a%%
echo %str%
set str=abcdehijkl
for %%a 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 str=%%str:%%a=%%a%%
echo %str%
作者: bat-zw
时间: 2008-6-28 11:12
Quote: |
Originally posted by pusofalse at 2008-6-28 07:41:
思路,for %~sa增强扩展。。。
[code]@echo off&setlocal enabledelayedexpansion
:1
set/p var=输入小写字母,多个字母用空格隔开:
if not defined var goto 1
for %%a ... |
|
我觉得思路是最重要的(只要不是钻牛角尖的思路),兄弟的这个思路妙啊,加分!
作者: bat-zw
时间: 2008-6-28 11:27
既然hat兄弟要求简单,我们就再简化一下代码吧:
@echo off
:1
set/p var=输入小写字母,多个字母用空格隔开:
if not defined var goto 1
for %%a in (%var%) do echo.>"%%a .nul"
for /f "delims=" %%a in ('dir /b *.nul') do set str=%%~sna&call,set /p=%%str:~,1%% <nul
pause>nul&del /q *.nul
作者: bat-zw
时间: 2008-6-28 12:02
也来一个,当然最佳方案还是二楼的:
@echo off&setlocal enabledelayedexpansion
set "code=aA bB cC dD eE fF gG hH iI jJ kK lL mM nN oO pP qQ rR sS tT uU vV wW xX yY zZ"
:begin
set/p var=输入小写字母,多个字母用空格隔开:
if not defined var goto begin
for %%a in (%var%) do (
for %%i in (%code%) do (
set str=%%i
if "!str:~,1!" equ "%%a" set /p=!str:~1! <nul
)
)
pause>nul
[
Last edited by zw19750516 on 2008-6-28 at 12:13 PM ]