Board logo

标题: 怎样才能使输入的英文小写在输出后自动变为大写? [打印本页]

作者: wuhanbin     时间: 2008-8-19 15:16    标题: 怎样才能使输入的英文小写在输出后自动变为大写?

怎样才能使输入的英文小写在输出后自动变为大写?
另外,怎样限制字符只能为8个?
set /p lng=请输入英文:
echo %lng%>>1.txt
作者: HAT     时间: 2008-8-19 15:21

@echo off
set /p lng=请输入英文:
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 lng=%%lng:%%a=%%a%%
echo %lng:~0,8%

作者: wuhanbin     时间: 2008-8-19 15:25
我想要只能输入8个字符
不过如果<8个字符或>8个字符会提示“错误,请重新输入”

这样能做到吗?

[ Last edited by wuhanbin on 2008-8-19 at 03:30 PM ]
作者: wuhanbin     时间: 2008-8-19 15:45
另外想问下,do call set 中call不用要紧吗?
%lng%与%%lng有什么区别?
lng=%%lng:%%a=%%a%%这里的:是用%%a的值替换前面的%%lng的意思吗?
=%%a%%等号后为什么用了双重%,是什么意思?

[ Last edited by wuhanbin on 2008-8-19 at 03:46 PM ]
作者: HAT     时间: 2008-8-19 15:55    标题: Re 3楼


@echo off
:begin
set /p lng=请输入英文:
for /f "skip=1 delims=:" %%a in ('^(echo "%lng%"^&echo.^)^|findstr /o ".*"') do set /a length=%%a-5
if %length% neq 8 (
  echo 错误,请重新输入
  goto :begin
)
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 lng=%%lng:%%a=%%a%%
echo %lng:~0,8%

作者: HAT     时间: 2008-8-19 15:56
//另外想问下,do call set 中call不用要紧吗?
要紧

//%lng%与%%lng有什么区别?
//lng=%%lng:%%a=%%a%%这里的:是用%%a的值替换前面的%%lng的意思吗?
//=%%a%%等号后为什么用了双重%,是什么意思?
本版搜索“变量延迟扩展”
作者: wuhanbin     时间: 2008-8-19 15:59
谢谢