中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 小写转大写 上一主题 | 下一主题
pusofalse
银牌会员




积分 1604
发帖 646
注册 2008-4-13
状态 离线
『楼 主』:  小写转大写

思路,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


   此帖被 +3 点积分     点击查看详情   
评分人:【 bat-zw 分数: +3  时间:2008-6-28 11:12




心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
2008-6-28 07:41
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 2 楼』:  

思路很有个性,呵呵。
不过还是越简单越好吧。
@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%




2008-6-28 10:12
查看资料  发短消息 网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 3 楼』:  



  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  ...

我觉得思路是最重要的(只要不是钻牛角尖的思路),兄弟的这个思路妙啊,加分!



批处理之家新域名:www.bathome.net
2008-6-28 11:12
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 4 楼』:  

既然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




批处理之家新域名:www.bathome.net
2008-6-28 11:27
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 5 楼』:  

也来一个,当然最佳方案还是二楼的:
@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 ]



批处理之家新域名:www.bathome.net
2008-6-28 12:02
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: