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

[安全相关] 批处理判断输入类型

分享一个判断输入类型的工具,可能在某些自由输入类型的程序中用到!~
  1. @echo off
  2. :start
  3. cls
  4. echo.
  5. echo    可以粗略判断输入的是文件、文件夹、txt文件、http网址、字符串、选项等.
  6. echo    可以进一步修改判断输入的是否某种类型文件。
  7. echo    不支持特殊符号。
  8. echo    可直接用到其它代码中。
  9. echo    可以拖入文件夹和文件。
  10. echo    可使用Url地址。
  11. echo    可直接输入字符。
  12. echo    退出 Q
  13. echo.
  14. echo.
  15. set /p "inf=输入:"
  16. echo.
  17. echo.
  18. if not defined inf echo 假设没有输入
  19. ::判断没有输入,同if "%inf%"==""
  20. if exist %inf% if /I "!inf:~-4,4!"==".txt" (echo 输入的是 TXT 文件)
  21. ::判断txt文件
  22. if /i "!inf:~0,4!"=="http" goto b
  23. ::判断http网址
  24. if /i %inf%==Q goto :eof
  25. ::判断选项
  26. if exist %inf% (if exist %inf%\nul (echo 【%inf%】是文件夹!) else (echo 【%inf%】 是文件!)) else (echo 【%inf%】 为字符串)
  27. ::if exist %inf% (if exist %inf% dir /a:d %inf%>nul 2>nul&&echo 【%inf%】是文件夹!||echo 【%inf%】 是文件!) else (echo 【%inf%】 为字符串)
  28. ::判断是否文件与字符串
  29. echo.
  30. echo.
  31. pause
  32. goto start
复制代码

[ 本帖最后由 cjiabing 于 2010-10-10 00:08 编辑 ]

回复 7楼 的帖子

正则表达式简介
http://bbs.bathome.net/thread-4485-1-1.html

批处理findstr命令正则表达式的基本用法
http://bbs.bathome.net/thread-24-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

怎么做呢?
不懂正则。
findstr是个费时间的东东,而且不够精确。
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

这个其实用findstr来做更好一点..
实际就是正则表达式..这是它的强项..

TOP

回复 4楼 的帖子

见了啊,呵呵,疏忽,但在使用中我用的是“if exist %inf%\nul”,后面的没用到

TOP

你见过的那个有那么明显的错误都没看出来啊,不应该是||而是else

TOP

回复 2楼 的帖子

我见过一个:
  1. if exist %inf%\nul echo 文件夹||echo 是文件
复制代码
可在我应用中没成功,不懂是执行环境问题还是其它问题,所以我只好用DIR

TOP

  1. if exist %inf%\
复制代码
这样就可以判断文件夹了吧?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表