标题: [文本处理] 求助 批处理代码 输入时需要判断大小写,怎么让大小写兼容 [打印本页]
作者: haichuan5121 时间: 2023-5-29 18:56 标题: 求助 批处理代码 输入时需要判断大小写,怎么让大小写兼容
个人想法是让输入后的大写字母转成小写再匹配,但始终报错,大神帮看下 第5行哪里错了 怎么修改;Lcase不就是转换语法吗- @echo off
- color 0a
- setlocal EnableDelayedExpansion
- :yy
- set /p LotID=请输入Lot ID: & set "LotID=!LotID:lcase=!"
-
- if not "%LotID:~0,2%"=="1a" set "gs=t"
- if "%gs%"=="t" echo Lot ID输入错误!&endlocal&goto yy
- echo %LotID:~6,4%|findstr "^[0-9]*$" >nul|| (
- echo\&echo Lot ID输入错误!
- endlocal&goto yy
- )
复制代码
作者: 77七 时间: 2023-5-29 22:38
批处理没有这个语法吧
搜索 大小写转换
作者: Batcher 时间: 2023-5-29 23:02
回复 1# haichuan5121
if /i 可以直接忽略大小写,这样算不算兼容:- set "LotID=1A"
- if /i "%LotID%" equ "1a" (
- echo Yes
- ) else (
- echo No
- )
复制代码
作者: haichuan5121 时间: 2023-5-30 10:18
回复 3# Batcher
这个是根据提示需要输入小写的十位数 ID的;如果输入大写就会提示报错,想要实现结果是 如果我不小心输入大写了,代码内部转成小写,然后就可以执行后面的操作了;怎么修改
@echo off
color 0a
:yy
setlocal
set /p LotID=请输入Lot ID(小写):
if not "%lotid:~0,2%"=="1a" set "gs=t"
if "%gs%"=="t" echo Lot ID输入错误!&endlocal&goto yy
echo %lotid:~6,4%|findstr "^[0-9]*$" >nul|| (
echo\&echo Lot ID输入错误!
endlocal&goto yy
)
set "str=%lotid%"
set "str=%str:"= %"
:next
if not "%str%"=="" (
set /a num+=1
set "str=%str:~1%"
goto next
)
if not "%num%"=="10" set "chd=aa"
if "%chd%"=="aa" echo Lot ID输入错误!&endlocal&goto yy
set "a=%LotID:~0,6%"
set "b=%LotID:~6,2%"
set "c=%LotID:~8,2%"
作者: Batcher 时间: 2023-5-30 22:59
回复 4# haichuan5121
请给两个输入的例子,一个正确的,一个错误。
分别描述一下,两种输入你分别希望代码执行到哪里。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |