返回顶部
首页 > 资讯 > 精选 >怎么用bat过滤任意字符
  • 855
分享到

怎么用bat过滤任意字符

2023-06-09 23:06:09 855人浏览 泡泡鱼
摘要

这篇文章主要讲解了“怎么用bat过滤任意字符”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用bat过滤任意字符”吧!早在写 bat的一个小游戏猜数字的时候我就研究过这个问题&n

这篇文章主要讲解了“怎么用bat过滤任意字符”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用bat过滤任意字符”吧!



早在写 bat的一个小游戏猜数字的时候我就研究过这个问题 如何在bat里面实现 对输入的任意字符进行过滤 当时使用的几种方法如下
Codz: 
if "%1"=="要过滤的字符" echo 你输入的是非法字符 
例: if "%1"=="wrongpassWord" echo 错误口令 

set errorlevel=0 
echo 要过滤的字符|find "要过滤的字符" 
if "%errorlevel%"=="0" echo 你输入的是是非法字符 
if "%errorlevel%"=="1" echo 该字符串不在非法列表中



主要是使用这两种方法 这两种方法可以过滤数字 和 英文字母 但是 对 特殊字符 不起作用

当要过滤【_+|-=\[]{};':,./">~`!@#$%^&*()_+|-=\[]{};':,./<>? 】(包含空格和tab键值)的时候 我们要这样

Codz: 
echo "anyword"|find "anywrod"

注意到有什么不同了吗 是的 我们加入了""来包含anyword 可是过滤到此并没完成 发现上面要过滤的字符 少了什么吗 是的 少了" 字符本身 遗憾的是 这种方法 无法完美的过滤"字符本身 当" 取值 为奇数 和 偶数的 时候 用find对她进行 过滤 随条件 不同可能会报错

这个问题 困扰了 我半年之久 曾在安焦上 问了一下 没人回答 

事实上要过滤它 并不是那么的简单 我们先写几个验证密码的小程序 看看在不同情况下程序的反应

我们先写一个验证密码登录的小程序

注:当密码验证字符为ph5nt0m的时候 授权登录

Codz: 
@echo off 
cls 
:allyesno 
set errorlevel=>nul 
echo 请输入登录口令 
set/p password= 
echo "%password%"|findstr "ph5nt0m" 
if "%errorlevel%"=="0" echo 口令正确&Goto end 
echo 口令错误&goto allyesno 
:end 
echo 你成功登录系统

将bat保存为key.bat执行

执行结果

Codz: 
C:test>key 
请输入登录口令 
test 
口令错误 
请输入登录口令 
ph5nt0m 
"ph5nt0m" 
口令正确 
你成功登录系统


事实 上 上面的代码用来进行一般的口令验证已经足够了 但是 要达到我们的目的 任意字符过滤还不行
我们换个方式执行看看

执行结果
Codz: 
C:test>key 
请输入登录口令 
test 
口令错误 
请输入登录口令 

"""|findstr "ph5nt0m" 
口令错误 
请输入登录口令 
ph5nt0m 
"ph5nt0m" 
口令正确 
你成功登录系统


看见了吗 当我们输入" 字符的时候 程序报错了 并显示了密码 为什么会这样呢? 我们再看这个语句的语法结构 echo "%password%"|findstr "ph5nt0m" 当%password%="的时候 就是echo """|findstr "ph5nt0m"

之所以会如此 跟echo的特性有关 我们看下面几个语句

Codz: 
I:>echo "|cd 
"|cd 

I:>echo ""|cd 
I: 

I:>echo """|cd 
"""|cd 

I:>echo """"|cd 
I:


当"为奇数的时候 则打印整行 当"为偶数的时候则 执行 | 字符后面的命令 上面程序执行的命令是cd

这里我想了一个办法绕过echo的报错特性 我用set代替了echo 程序如下

Codz: 
@echo off 
cls 
:allyesno 
set errorlevel=>nul 
echo 请输入登录口令 
set/p password= 
set |findstr "ph5nt0m" 
if "%errorlevel%"=="0" echo 口令正确&goto end 
echo 口令错误&goto allyesno 
:end 
echo 你成功登录系统


执行结果如下

Codz: 
请输入登录口令 
test 
口令错误 
请输入登录口令 

口令错误 
请输入登录口令 
ph5nt0m 
password=ph5nt0m 
口令正确 
你成功登录系统 

C:\test>


程序进一步的完美了

但是还是有问题D 我们再来看 换一种方式执行

Codz: 
请输入登录口令 
test 
口令错误 
请输入登录口令 
ph5nt0mallyesno 
password=ph5nt0mallyesno 
口令正确 
你成功登录系统 

C:test>


由于程序的验证方式是 set |findstr "ph5nt0m" 所以只要包含ph5nt0m字符的 密码 都被当成正确密码 所以密码ph5nt0mallyesno 也通过了

为了避免这个问题 我设置了 匹配参数\<\> 对数据进行检验 修改后的程序 如下

Codz: 
@echo off 
cls 
:allyesno 
set errorlevel=>nul 
echo 请输入登录口令 
set/p password= 
set |findstr "\<ph5nt0m\>" 
if "%errorlevel%"=="0" echo 口令正确&goto end 
echo 口令错误&goto allyesno 
:end 
echo 你成功登录系统


执行结果

Codz: 
请输入登录口令 
test 
口令错误 
请输入登录口令 
ph5nt0mallyesno 
口令错误 
请输入登录口令 
ph5nt0m 
password=ph5nt0m 
口令正确 
你成功登录系统 

C:test>


最后再将程序 修整 如下 

Codz: 
@echo off 
cls 
:allyesno 
set errorlevel=>nul 
echo 请输入登录口令 
set/p password= 
rem 如果密码字符串包含此行任一字符_+|-=[]{};':,./">~`!@#$%^&*()_+|-=[]{};':,./<>? 则必须使用匹配模式<> 
rem 需要双写的字符 
rem 不可以作为密码的字符 " 
set password|findstr "\<ph5nt0m\>" 
if "%errorlevel%"=="0" echo 口令正确&goto end 
echo 口令错误&goto allyesno 
:end 
set password=>nul 
echo 你成功登录系统


注:当密码字符串中有字符\的时候 需要将字符双写\\ 
例 set password|findstr "\<\\\>"
登录的时候 只需要写一次\不需要双写

" 字符 不可以作为密码字符串 如果密码字符串包含此行任一字符_+|-=[]{};':,./">~`!@#$%^&*()_+|-=[]{};':,./<>? 则必须使用匹配模式\<\>

感谢各位的阅读,以上就是“怎么用bat过滤任意字符”的内容了,经过本文的学习后,相信大家对怎么用bat过滤任意字符这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: 怎么用bat过滤任意字符

本文链接: https://lsjlt.com/news/258404.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么用bat过滤任意字符
    这篇文章主要讲解了“怎么用bat过滤任意字符”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用bat过滤任意字符”吧!早在写 bat的一个小游戏猜数字的时候我就研究过这个问题&n...
    99+
    2023-06-09
  • springmvc字符编码过滤器CharacterEncodingFilter怎么用
    在Spring MVC中使用CharacterEncodingFilter来设置字符编码过滤器可以确保请求和响应中的参数都被正确编码...
    99+
    2024-04-02
  • php字符串过滤函数strip_tags()怎么使用
    strip_tags()函数用于从字符串中删除HTML和PHP标签。它的语法如下:```phpstring strip_tags ( string $str [, string $allowable_tags ] )```参数说明:- ...
    99+
    2023-08-11
    php strip_tags()
  • springmvc字符编码过滤器CharacterEncodingFilter怎么使用
    要使用CharacterEncodingFilter,首先需要在web.xml文件中配置该过滤器。首先,在web.xml文件中添加以...
    99+
    2023-08-17
    springmvc
  • Python中怎么过滤字符串列表
    今天就跟大家聊聊有关Python中怎么过滤字符串列表,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。使用另一个列表过滤字符串列表本示例说明了如何在不使用任何方法的情况下过滤字符串列表中...
    99+
    2023-06-16
  • php怎么过滤字符串只获取数字
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑方法1:利用is_numeric()函数<php header("content-type:text/html;charset=utf-8")...
    99+
    2014-08-22
    php 过滤字符串 获取数字
  • 利用java怎么过滤字符串中的中文
    利用java怎么过滤字符串中的中文?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1.判断字符串中是否包含中文方法封装public static boolean isContai...
    99+
    2023-05-31
    java 字符串 ava
  • ASP.NET过滤HTML字符串的代码怎么写
    本文小编为大家详细介绍“ASP.NET过滤HTML字符串的代码怎么写”,内容详细,步骤清晰,细节处理妥当,希望这篇“ASP.NET过滤HTML字符串的代码怎么写”文章能帮助大家解决疑惑,下面跟着小编的思路慢...
    99+
    2024-04-02
  • python任意字符通配符如何使用
    在Python中,可以使用`*`来表示任意字符通配符。`*`可以匹配任意长度的任意字符。下面是使用通配符的一些示例:1. 匹配任意长...
    99+
    2023-08-30
    python
  • Linux怎么过滤文本或文件中字符串
    本篇内容介绍了“Linux怎么过滤文本或文件中字符串”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是正则表达式 正则表达式可以定义为代表...
    99+
    2023-06-28
  • springmvc字符编码过滤器CharacterEncodingFilter的使用
    字符编码过滤器CharacterEncodingFilter 一、在web.xml中的配置 <!-- characterEncodingFilter字符编码过滤器 --&...
    99+
    2024-04-02
  • C#中怎么过滤换行符
    这期内容当中小编将会给大家带来有关C#中怎么过滤换行符,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。C#换行符都去掉就用下面的正则:textStr = Regex.Replace(te...
    99+
    2023-06-17
  • JavaScript中怎么过滤关键字
    这期内容当中小编将会给大家带来有关JavaScript中怎么过滤关键字,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。效果图:话不多说,请看代码:<!DOCTYPE&...
    99+
    2024-04-02
  • sql中表示任意字符的是什么
    sql中表示任意字符的通配符是百分号(%)。它可以放在模式字符串的开头、结尾或中间位置来匹配指定字符串开头的、结尾的或包含的字符。 SQL中表示任意字符的是什么 在SQL中,表示任意字...
    99+
    2024-05-02
  • mongodb怎么过滤不用存储的字段
    在MongoDB中,你可以使用投影操作符 `$project` 来过滤不需要存储的字段。该操作符允许你指定需要返回的字段,而忽略其他...
    99+
    2023-08-31
    mongodb
  • 使用RequestBodyAdvice实现对Http请求非法字符过滤
    RequestBodyAdvice对Http请求非法字符过滤 利用RequestBodyAdvice对HTTP请求参数放入body中的参数进行非法字符过滤。 要求:spring 4....
    99+
    2024-04-02
  • PHP过滤器怎么用
    本篇内容主要讲解“PHP过滤器怎么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PHP过滤器怎么用”吧!PHP 过滤器PHP 过滤器用于验证和过滤来自非安全来源的数据,比如用户的输入。。。。。...
    99+
    2023-06-04
  • 使用list stream: 任意对象List拼接字符串
    目录任意对象List拼接字符串String.join方法接下来介绍一种更加方便的处理方式Stream流合并字符串、拼接字符串任意对象List拼接字符串 开发中经常会对List中的数据...
    99+
    2024-04-02
  • Python连接MySQL并使用fetchall()方法过滤特殊字符
    来一个简单的例子,看Python如何操作数据库,相比Java的JDBC来说,确实非常简单,省去了很多复杂的重复工作,只关心数据的获取与操作。 准备工作 需要有相应的环境和模块: Ubuntu 14.0...
    99+
    2022-06-04
    特殊字符 方法 Python
  • 如何用RequestBodyAdvice实现对Http请求非法字符过滤
    这篇文章主要介绍“如何用RequestBodyAdvice实现对Http请求非法字符过滤”,在日常操作中,相信很多人在如何用RequestBodyAdvice实现对Http请求非法字符过滤问题上存在疑惑,小编查阅了各式资料,整理出简单好用的...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作