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

[文本处理] [已解决]如何判断输入字符的个数(长度)是否小于指定值?

本帖最后由 pcl_test 于 2016-4-7 19:39 编辑

论坛,百度搜了下没有我要的,所以求助下大家

例如我下面的代码,要判断输入不能小于6位,如果小于6位则跳回来再输,如果大于等于6位则继续,同样也不能为空
  1. :inputid
  2. cls
  3. echo\
  4. echo\
  5. set card=
  6. set /p card=       请输入要合并的会员卡号后8位:
  7. if defined card (
  8.     goto ST2
  9. ) else (echo\ &echo      你的输入为空,请重新输入!&pause>nul&goto inputid)
复制代码
1

评分人数

回复 1# lovealei
  1. @echo off&setlocal enabledelayedexpansion
  2. set "name=123456987654"
  3. set "name=%name: =%"
  4. for /l %%n in (0,1,8192)do (
  5. if not "!name:~%%n,1!"=="" set/a "n=1+%%n"
  6. )
  7. echo,%n%
  8. pause
复制代码
这么好的论坛你上哪找,运行测试环境为6.1.7601-64
注:请遵守互联网信息安全,勿用于非法用途

TOP

TOP

  1. powershell -c "'1234567abc呵呵'.Length"
复制代码

TOP

  1. echo;1234567abc呵呵|gawk -F "" "{print NF}"
  2. echo;1234567abc呵呵|gawk "{print length($0)}"
复制代码

TOP

  1. set str=1234567abc呵呵
  2. mshta "javascript:new ActiveXObject('Scripting.Filesystemobject').GetStandardStream(1).Write('%str%'.length);close()"|more
复制代码

TOP

本帖最后由 WHY 于 2016-4-6 23:05 编辑
  1. set /p s=Input:
  2. if not "%s%" == "" if not "%s:~5%" == "" echo 不小于6个字符
复制代码

TOP

RE: 如何判断输入字符的个数(长度)是否小于指定值?

回复 1# lovealei


    版主,可能是浏览器问题主题分类出不来,我试了IE8,2345,QQ浏览器都不行,所以没有指定主题分类

TOP

pcl_test 发表于 2016-4-6 20:30



    这个是批处理代码吗?怎么用呢

TOP

WHY 发表于 2016-4-6 22:58



    试了下,只能判断输入为空,长度还是不行啊

TOP

最后翻了下论坛还是解决了,多作了一个比较,效率不知道,代码贴出来
  1. :inputid
  2. cls
  3. echo\
  4. echo\
  5. set card=
  6. set /p card=       请输入要合并会员的6位身份证号码:
  7. if defined card (goto ST1) else (cls&echo\&echo\&echo       你的输入为空,按任意键重新输入!&pause>nul&goto inputid)
  8. :ST1
  9. call :strlen len
  10. if %len% NEQ 6 (cls&echo\&echo\&echo        请至少输入6位身份证号码!按任意键重新输入!&pause>nul&goto inputid) else goto ST2
  11. :strlen
  12. setlocal EnableDelayedExpansion&set n=0
  13. :strlen_loop
  14. if "!card:~%n%,1!" neq "" set /a n+=1&goto strlen_loop
  15. endlocal&set "%~1=%n%"&goto :eof
复制代码

TOP

本帖最后由 happy886rr 于 2016-4-7 18:06 编辑
  1. 欢迎来到ST2做客,正在开启人工智能...
  2. @echo off
  3. :INPUTID
  4. cls&echo;&echo;&set card=&set/p card=请输入要合并的会员卡号后8位:
  5. if defined card (if "%card:~5%"=="" (goto INPUTID)&goto ST2) else (set/p=你的输入为空,请重新输入&goto INPUTID)
  6. :ST2
  7. sort %0|more +7
  8. for /l %%i in (1 1 30) do (call,color %%time:~-1%%f&ping -n 2 127.1>nul)
复制代码
回复 11# lovealei

TOP

回复  lovealei
happy886rr 发表于 2016-4-7 18:04



这个试了也行啊,

TOP

返回列表