[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 求助 批处理代码 输入时需要判断大小写,怎么让大小写兼容

个人想法是让输入后的大写字母转成小写再匹配,但始终报错,大神帮看下 第5行哪里错了 怎么修改;Lcase不就是转换语法吗
  1. @echo off
  2. color 0a
  3. setlocal EnableDelayedExpansion
  4. :yy
  5. set /p LotID=请输入Lot ID: & set "LotID=!LotID:lcase=!"
  6. if not "%LotID:~0,2%"=="1a" set "gs=t"
  7. if "%gs%"=="t" echo Lot ID输入错误!&endlocal&goto yy
  8. echo %LotID:~6,4%|findstr "^[0-9]*$" >nul|| (
  9.   echo\&echo Lot ID输入错误!
  10.   endlocal&goto yy
  11. )
复制代码

Lcase不就是转换语法吗

批处理没有这个语法吧
搜索 大小写转换
bat小白,请多指教!谢谢!

TOP

回复 1# haichuan5121


if /i 可以直接忽略大小写,这样算不算兼容:
  1. set "LotID=1A"
  2. if /i "%LotID%" equ "1a" (
  3.     echo Yes
  4. ) else (
  5.     echo No
  6. )
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 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%"

TOP

回复 4# haichuan5121


请给两个输入的例子,一个正确的,一个错误。
分别描述一下,两种输入你分别希望代码执行到哪里。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表