标题: [安全相关] 批处理判断输入类型 [打印本页]
作者: cjiabing 时间: 2010-10-9 20:45 标题: 批处理判断输入类型
分享一个判断输入类型的工具,可能在某些自由输入类型的程序中用到!~- @echo off
- :start
- cls
- echo.
- echo 可以粗略判断输入的是文件、文件夹、txt文件、http网址、字符串、选项等.
- echo 可以进一步修改判断输入的是否某种类型文件。
- echo 不支持特殊符号。
- echo 可直接用到其它代码中。
- echo 可以拖入文件夹和文件。
- echo 可使用Url地址。
- echo 可直接输入字符。
- echo 退出 Q
- echo.
- echo.
- set /p "inf=输入:"
- echo.
- echo.
- if not defined inf echo 假设没有输入
- ::判断没有输入,同if "%inf%"==""
- if exist %inf% if /I "!inf:~-4,4!"==".txt" (echo 输入的是 TXT 文件)
- ::判断txt文件
- if /i "!inf:~0,4!"=="http" goto b
- ::判断http网址
- if /i %inf%==Q goto :eof
- ::判断选项
- if exist %inf% (if exist %inf%\nul (echo 【%inf%】是文件夹!) else (echo 【%inf%】 是文件!)) else (echo 【%inf%】 为字符串)
- ::if exist %inf% (if exist %inf% dir /a:d %inf%>nul 2>nul&&echo 【%inf%】是文件夹!||echo 【%inf%】 是文件!) else (echo 【%inf%】 为字符串)
- ::判断是否文件与字符串
- echo.
- echo.
- pause
- goto start
复制代码
[ 本帖最后由 cjiabing 于 2010-10-10 00:08 编辑 ]
作者: Batcher 时间: 2010-10-9 22:46
复制代码
这样就可以判断文件夹了吧?
作者: cjiabing 时间: 2010-10-10 00:03 标题: 回复 2楼 的帖子
我见过一个:- if exist %inf%\nul echo 文件夹||echo 是文件
复制代码
可在我应用中没成功,不懂是执行环境问题还是其它问题,所以我只好用DIR
作者: powerbat 时间: 2010-10-10 00:59
你见过的那个有那么明显的错误都没看出来啊,不应该是||而是else
作者: cjiabing 时间: 2010-10-10 12:27 标题: 回复 4楼 的帖子
见了啊,呵呵,疏忽,但在使用中我用的是“if exist %inf%\nul”,后面的没用到
作者: caruko 时间: 2010-10-21 23:08
这个其实用findstr来做更好一点..
实际就是正则表达式..这是它的强项..
作者: cjiabing 时间: 2010-10-21 23:30
怎么做呢?
不懂正则。
findstr是个费时间的东东,而且不够精确。
作者: Batcher 时间: 2010-10-22 00:03 标题: 回复 7楼 的帖子
正则表达式简介
http://bbs.bathome.net/thread-4485-1-1.html
批处理findstr命令正则表达式的基本用法
http://bbs.bathome.net/thread-24-1-1.html
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |