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

回复 17楼 的帖子

如果要使用管道,的确要用到临时文件才行。
http://www.bathome.net/viewthread.php?tid=3830&page=1#pid24372
开始我老想着用findstr判断字符,发现必须要用到临时文件。

[ 本帖最后由 zqz0012005 于 2009-3-28 14:29 编辑 ]
命令行参考:hh.exe ntcmds.chm::/ntcmds.htm
求助者请拿出诚心,别人才愿意奉献热心!
把查看手册形成条件反射!

TOP

原帖由 zqz0012005 于 2009-3-28 08:49 发表
如果要使用管道,的确要用到临时文件才行。
http://www.bathome.net/viewthread.php?tid=3830&page=1#pid24372
开始我老想着用findstr判断字符,发现必须要用到临时文件。


其实所有的判断都可以用findstr来完成,并不需要临时文件。
兼容大部分特殊符号。

  1. @echo off&set "f=findstr .....|findstr /v ............."
  2. :loop
  3. echo.&set a=a&set var=&set /p var= 请输入3至10位英文字母 &cls
  4. echo."%var%"|%f%|findstr "^\"[a-zA-Z]*\"$">nul&&set "a="
  5. if defined a (echo  输入错误) else echo  %var% 正确
  6. goto loop
复制代码

[ 本帖最后由 随风 于 2009-3-28 21:02 编辑 ]
技术问题请到论坛发帖求助!

TOP

回复 32楼 的帖子

31楼说的临时文件估计是想兼容所有特殊符号
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 32楼 的帖子

输入 Zip,提示“输入错误”
输入 ",显示 """|findstr .....|findstr /v .............|findstr "\"[a-z]*\"$">nul&&set "a="
输入 "&",批处理退出。

TOP

回复 34楼 的帖子

已经说明可兼容大部分特殊符号,而不是所有特殊符号,其中引号就是没法处理的
输入 Zip 提示错误,已经改正,由此引发另一个问题,大家可以探讨一下
为什么第一个字母为大写Z时,findstr 就必须指定忽略大小写呢?
echo Zip|findstr "^[a-z]*$" 错误
echo Yip|findstr "^[a-z]*$" 正确
echo Zip|findstr /i "^[a-z]*$" 正确
技术问题请到论坛发帖求助!

TOP

原帖由 Batcher 于 2009-3-27 22:50 发表
if "!input!" neq "" (
  echo 只能输入纯字母[a-zA-Z]
  goto :GetInput
)
endlocal

这里的endlocal好像执行不到,有必要加吗?
1

评分人数

有一种爱叫放弃

TOP

回复 36楼 的帖子

执行的到,不信你连续33次输入错误看看。
1

评分人数

技术问题请到论坛发帖求助!

TOP

回复 37楼 的帖子

原来是这样
  1. 请输入3至10位字母:134
  2. 已经达到最大的 setlocal 递归层
  3. 只能输入纯字母[a-zA-Z]
  4. 请输入3至10位字母:
复制代码
去掉endlocal后:
  1. 请输入3至10位字母:134
  2. 已经达到最大的 setlocal 递归层。
  3. 只能输入纯字母[a-zA-Z]
  4. 请输入3至10位字母:135
  5. 已经达到最大的 setlocal 递归层。
  6. 只能输入纯字母[a-zA-Z]
  7. 请输入3至10位字母:136
  8. 已经达到最大的 setlocal 递归层。
  9. 只能输入纯字母[a-zA-Z]
  10. 请输入3至10位字母:
复制代码
感谢随风,受教了!
有一种爱叫放弃

TOP

回复 32楼 的帖子

set "f=findstr .....|findstr /v ............."
请教这个命令怎么解释?
set f=是把命令赋予f,里面的.........是什么意思?
有一种爱叫放弃

TOP

回复 37、38楼 的帖子

确实执行不到endlocal

TOP

回复 39楼 的帖子

点,在正则表达式中是通配符,表示任意一位字符。
.. 表示任意2位字符
... 表示任意3位字符
.... 表示任意4位字符
以此类推
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 40楼 的帖子

确实应该是执行不到,batcher 是否应该考虑改一下endlocal的位置。
技术问题请到论坛发帖求助!

TOP

回复 42楼 的帖子

Done.
改好了。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

32l学习了,思路很别致

TOP

  1. @echo off
  2. set /p str=请输入3到10个字母:
  3. set var=%str%
  4. set n=0
  5. :begin
  6. set a=%str:~0,1%
  7. set /a n+=1
  8. set str=%str:~1%
  9. if not "%str%"=="" goto begin
  10. if %n% lss 3 echo 字符数不符&&goto eof
  11. if %n% gtr 10 echo 字符数不符&&goto eof
  12. echo %var%|findstr "[^a-z]">nul&&echo 输入的字符不完全是字母&&goto eof
  13. echo 输入正确!
  14. :eof
  15. pause
复制代码

[ 本帖最后由 cainiao736 于 2009-4-6 22:35 编辑 ]

TOP

返回列表