国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > BAT > 正文

bat過濾任意字符

2020-06-09 14:05:13
字體:
來源:轉載
供稿:網友
文章作者:allyesno

早在寫 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對她進行 過濾 隨條件 不同可能會報錯

這個問題 困擾了 我半年之久 曾在安焦上 問了一下 沒人回答 

事實上要過濾它 并不是那么的簡單 我們先寫幾個驗證密碼的小程序 看看在不同情況下程序的反應

我們先寫一個驗證密碼登錄的小程序

注:當密碼驗證字符為ph4nt0m的時候 授權登錄

Codz: 
@echo off 
cls 
:allyesno 
set errorlevel=>nul 
echo 請輸入登錄口令 
set/p password= 
echo "%password%"|findstr "ph4nt0m" 
if "%errorlevel%"=="0" echo 口令正確&goto end 
echo 口令錯誤&goto allyesno 
:end 
echo 你成功登錄系統



將bat保存為key.bat執行

執行結果

Codz: 
C:test>key 
請輸入登錄口令 
test 
口令錯誤 
請輸入登錄口令 
ph4nt0m 
"ph4nt0m" 
口令正確 
你成功登錄系統



事實 上 上面的代碼用來進行一般的口令驗證已經足夠了 但是 要達到我們的目的 任意字符過濾還不行
我們換個方式執行看看

執行結果
Codz: 
C:test>key 
請輸入登錄口令 
test 
口令錯誤 
請輸入登錄口令 

"""|findstr "ph4nt0m" 
口令錯誤 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 丘北县| 平安县| 瓦房店市| 城市| 古浪县| 竹溪县| 新竹市| 张家界市| 祥云县| 礼泉县| 晋宁县| 昭觉县| 乾安县| 体育| 弥勒县| 十堰市| 股票| 防城港市| 河池市| 朔州市| 东莞市| 讷河市| 信阳市| 南江县| 广灵县| 呼伦贝尔市| 玉树县| 屏东市| 稻城县| 蒙自县| 宝清县| 巫溪县| 芜湖县| 临城县| 化隆| 茶陵县| 文昌市| 日照市| 长海县| 余姚市| 孝义市|