中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-13 22:39
楼 主 小写转大写 发表于 2008-06-28 07:41 ·  中国 山东 淄博 联通
银牌会员
★★★
积分 1,604
发帖 646
注册 2008-04-13 23:39
UID 115804
性别 男
状态 离线
思路,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
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
bat-zw +3 2008-06-28 11:12
心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
2 发表于 2008-06-28 10:12 ·  中国 重庆 九龙坡区 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
UID 89899
性别 男
状态 离线
思路很有个性,呵呵。
不过还是越简单越好吧。

@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%
3 发表于 2008-06-28 11:12 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
UID 112398
性别 男
状态 离线
Originally posted by pusofalse at 2008-6-28 07:41:
思路,for %~sa增强扩展。。。

@echo off&setlocal enabledelayedexpansion
:1
set/p var=输入小写字母,多个字母用空格隔开:
if not defined var goto 1
for %%a ...

我觉得思路是最重要的(只要不是钻牛角尖的思路),兄弟的这个思路妙啊,加分!
批处理之家新域名:www.bathome.net
4 发表于 2008-06-28 11:27 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
UID 112398
性别 男
状态 离线
既然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
5 发表于 2008-06-28 12:02 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
UID 112398
性别 男
状态 离线
也来一个,当然最佳方案还是二楼的:

@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
论坛跳转: