找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 18542|回复: 4

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

[复制链接]
发表于 2023-5-29 18:56:26 | 显示全部楼层 |阅读模式
个人想法是让输入后的大写字母转成小写再匹配,但始终报错,大神帮看下 第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. )
复制代码
发表于 2023-5-29 22:38:15 | 显示全部楼层
Lcase不就是转换语法吗

批处理没有这个语法吧
搜索 大小写转换
发表于 2023-5-29 23:02:00 | 显示全部楼层
回复 1# haichuan5121


if /i 可以直接忽略大小写,这样算不算兼容:
  1. set "LotID=1A"
  2. if /i "%LotID%" equ "1a" (
  3.     echo Yes
  4. ) else (
  5.     echo No
  6. )
复制代码
 楼主| 发表于 2023-5-30 10:18:41 | 显示全部楼层
回复 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%"
发表于 2023-5-30 22:59:45 | 显示全部楼层
回复 4# haichuan5121


请给两个输入的例子,一个正确的,一个错误。
分别描述一下,两种输入你分别希望代码执行到哪里。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 18:34 , Processed in 0.017413 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表