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

回复 37、38楼 的帖子

确实执行不到endlocal

TOP

回复 32楼 的帖子

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

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

回复 36楼 的帖子

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

评分人数

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

TOP

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

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

评分人数

有一种爱叫放弃

TOP

回复 34楼 的帖子

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

TOP

回复 32楼 的帖子

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

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

原帖由 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

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

回复 28楼 的帖子

这里是不需要使用/i来忽略大小写的,正则表达式足矣。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 25楼 的帖子

for /r 的用意何在?
与直接for相比,其优势在哪里?

汗水,28楼和29楼都是2009-3-28 00:17,我跑到tireless兄后面去了,呵呵。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 25楼 的帖子

for /r %%a in (*.temp) do set /a a=%%~za-2

可以换成:

for %%a in (1.temp) do set /a a=%%~za-2

-----------

findstr "[^a-z]" 没忽略大小写......不过都是鸡毛蒜皮的事......

TOP

所言即是,已修改
***共同提高***

TOP

通过文件大小来判断字符数,果然比较新颖。echo %input% 为什么不写成echo.%input%呢?
技术问题请到论坛发帖求助!

TOP

返回列表