国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 編程 > BAT > 正文

bat過濾任意字符

2020-07-26 20:39:10
字體:
供稿:網(wǎng)友
文章作者:allyesno

早在寫 bat的一個(gè)小游戲猜數(shù)字的時(shí)候我就研究過這個(gè)問題 如何在bat里面實(shí)現(xiàn) 對(duì)輸入的任意字符進(jìn)行過濾 當(dāng)時(shí)使用的幾種方法如下
Codz: 
if "%1"=="要過濾的字符" echo 你輸入的是非法字符 
例: if "%1"=="wrongpassword" echo 錯(cuò)誤口令 

set errorlevel=0 
echo 要過濾的字符|find "要過濾的字符" 
if "%errorlevel%"=="0" echo 你輸入的是是非法字符 
if "%errorlevel%"=="1" echo 該字符串不在非法列表中



主要是使用這兩種方法 這兩種方法可以過濾數(shù)字 和 英文字母 但是 對(duì) 特殊字符 不起作用

當(dāng)要過濾【_+|-=/[]{};':,./">~`!@#$%^&*()_+|-=/[]{};':,./<>? 】(包含空格和tab鍵值)的時(shí)候 我們要這樣

Codz: 
echo "anyword"|find "anywrod"

注意到有什么不同了嗎 是的 我們加入了""來包含anyword 可是過濾到此并沒完成 發(fā)現(xiàn)上面要過濾的字符 少了什么嗎 是的 少了" 字符本身 遺憾的是 這種方法 無法完美的過濾"字符本身 當(dāng)" 取值 為奇數(shù) 和 偶數(shù)的 時(shí)候 用find對(duì)她進(jìn)行 過濾 隨條件 不同可能會(huì)報(bào)錯(cuò)

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

事實(shí)上要過濾它 并不是那么的簡(jiǎn)單 我們先寫幾個(gè)驗(yàn)證密碼的小程序 看看在不同情況下程序的反應(yīng)

我們先寫一個(gè)驗(yàn)證密碼登錄的小程序

注:當(dāng)密碼驗(yàn)證字符為ph4nt0m的時(shí)候 授權(quán)登錄

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



將bat保存為key.bat執(zhí)行

執(zhí)行結(jié)果

Codz: 
C:test>key 
請(qǐng)輸入登錄口令 
test 
口令錯(cuò)誤 
請(qǐng)輸入登錄口令 
ph4nt0m 
"ph4nt0m" 
口令正確 
你成功登錄系統(tǒng)



事實(shí) 上 上面的代碼用來進(jìn)行一般的口令驗(yàn)證已經(jīng)足夠了 但是 要達(dá)到我們的目的 任意字符過濾還不行
我們換個(gè)方式執(zhí)行看看

執(zhí)行結(jié)果
Codz: 
C:test>key 
請(qǐng)輸入登錄口令 
test 
口令錯(cuò)誤 
請(qǐng)輸入登錄口令 

"""|findstr "ph4nt0m" 
口令錯(cuò)誤 
請(qǐng)輸入登錄口令 
ph4nt0m 
"ph4nt0m" 
口令正確 
你成功登錄系統(tǒng)



看見了嗎 當(dāng)我們輸入" 字符的時(shí)候 程序報(bào)錯(cuò)了 并顯示了密碼 為什么會(huì)這樣呢? 我們?cè)倏催@個(gè)語句的語法結(jié)構(gòu) echo "%password%"|findstr "ph4nt0m" 當(dāng)%password%="的時(shí)候 就是echo """|findstr "ph4nt0m"

之所以會(huì)如此 跟echo的特性有關(guān) 我們看下面幾個(gè)語句

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

I:>echo ""|cd 
I: 

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

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



當(dāng)"為奇數(shù)的時(shí)候 則打印整行 當(dāng)"為偶數(shù)的時(shí)候則 執(zhí)行 | 字符后面的命令 上面程序執(zhí)行的命令是cd

這里我想了一個(gè)辦法繞過echo的報(bào)錯(cuò)特性 我用set代替了echo 程序如下

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



執(zhí)行結(jié)果如下

Codz: 
請(qǐng)輸入登錄口令 
test 
口令錯(cuò)誤 
請(qǐng)輸入登錄口令 

口令錯(cuò)誤 
請(qǐng)輸入登錄口令 
ph4nt0m 
password=ph4nt0m 
口令正確 
你成功登錄系統(tǒng) 

C:/test>



程序進(jìn)一步的完美了

但是還是有問題D 我們?cè)賮砜?nbsp;換一種方式執(zhí)行

Codz: 
請(qǐng)輸入登錄口令 
test 
口令錯(cuò)誤 
請(qǐng)輸入登錄口令 
ph4nt0mallyesno 
password=ph4nt0mallyesno 
口令正確 
你成功登錄系統(tǒng) 

C:test>



由于程序的驗(yàn)證方式是 set |findstr "ph4nt0m" 所以只要包含ph4nt0m字符的 密碼 都被當(dāng)成正確密碼 所以密碼ph4nt0mallyesno 也通過了

為了避免這個(gè)問題 我設(shè)置了 匹配參數(shù)/</> 對(duì)數(shù)據(jù)進(jìn)行檢驗(yàn) 修改后的程序 如下

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



執(zhí)行結(jié)果

Codz: 
請(qǐng)輸入登錄口令 
test 
口令錯(cuò)誤 
請(qǐng)輸入登錄口令 
ph4nt0mallyesno 
口令錯(cuò)誤 
請(qǐng)輸入登錄口令 
ph4nt0m 
password=ph4nt0m 
口令正確 
你成功登錄系統(tǒng) 

C:test>



最后再將程序 修整 如下 

Codz: 
@echo off 
cls 
:allyesno 
set errorlevel=>nul 
echo 請(qǐng)輸入登錄口令 
set/p password= 
rem 如果密碼字符串包含此行任一字符_+|-=[]{};':,./">~`!@#$%^&*()_+|-=[]{};':,./<>? 則必須使用匹配模式<> 
rem 需要雙寫的字符 
rem 不可以作為密碼的字符 " 
set password|findstr "/<ph4nt0m/>" 
if "%errorlevel%"=="0" echo 口令正確&goto end 
echo 口令錯(cuò)誤&goto allyesno 
:end 
set password=>nul 
echo 你成功登錄系統(tǒng)



注:當(dāng)密碼字符串中有字符/的時(shí)候 需要將字符雙寫// 
例 set password|findstr "/<///>"
登錄的時(shí)候 只需要寫一次/不需要雙寫

" 字符 不可以作為密碼字符串 如果密碼字符串包含此行任一字符_+|-=[]{};':,./">~`!@#$%^&*()_+|-=[]{};':,./<>? 則必須使用匹配模式/</>
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
国产视频二区| 久草网在线视频| 黄网在线免费| 日本久久国产| 国产丝袜在线播放| 国产私人影院| 伊人网在线观看| 国产三级香港三韩国三级| 久久国产情侣| 97影院理论午夜| 一本久中文高清| 午夜羞羞小视频在线观看| 伊人伊人av电影| 日本欧美在线视频免费观看| 国产在线观看色| 国产一级片麻豆| 尤物在线视频| 999在线视频| 国产精品一区二区资源| 欧美精品一区二区三区免费| 麻豆精品免费视频入口| 国产福利在线免费观看| 在线视频中文字幕| 免费看成年人视频在线观看| 国产视频三区| 高潮毛片在线观看| 尤物视频在线观看视频| 国产激情在线视频| 国产一级在线观看www色| 四虎成人精品在永久在线观看| 天天操人人干| 久久国产综合视频| 牛牛热在线视频| 亚洲xxxxxx| 国产精品jvid在线观看| 成人免费一区二区三区牛牛 | 丁香视频五月| 俺来俺也去www色在线观看| 国产二区在线播放| 国产精品免费视频二三区| 成视频年人免费看黄网站| 九九热视频在线| 国产免费电影网站入口| 黄网站在线观看高清免费| 免费网站看黄yyy222| 免费a在线观看| 狠狠综合久久久综合| 二人午夜免费观看在线视频| av中文字幕在线看| av在线不卡播放| 日本久久网站| 国产中文字幕在线| 国产日本在线观看| 97国产视频| av在线不卡免费| 免费国产在线视频| 国产亚洲精品久久久网站好莱| 国产一级免费在线观看| 91视频黄色| www.三区| 国产一二三区在线| 伊人永久在线| 高潮毛片在线观看| 国产一级黄色电影| 亚洲精品aaaa| 五月天丁香在线| 在线天堂av| 天天av综合网| 亚洲成人福利| 资源视频在线播放免费| 在线观看中文字幕| 99视频免费在线观看| 国产超碰97| 国产麻豆麻豆| 在线看黄网址| 国产精品欧美色图| 免费av在线| 伊人免费视频| 国产在线色视频| 99爱视频在线观看| 99视频免费| 青青草在线视频免费观看| 国产二区在线播放| 国产裸舞福利在线视频合集| 中文字幕av高清在线观看| 尤物视频网站在线观看| 不卡av免费观看| 亚洲综合色视频在线观看 | 最近中文字幕av免费高清| 青青草中文字幕| 国产精品视频一区二区免费不卡 | 91九色在线看| 国产精品免费91| 国产亚洲精品久久久久久青梅| 超碰在线中文| 国产在线一二三区| 欧美卡一卡二| 美女永久在线网站| gogo在线高清视频| 亚洲精品aaaa精品| 热99在线观看| 欧美亚洲系列| 九九热视频在线观看| 久久99国产视频| 久久av少妇| 成人精品福利| 国产探花视频在线观看| 国产视频二区在线观看| 国产福利三区| 伊人色综合网| 女子免费在线观看视频www| www在线观看播放免费视频日本| 亚洲欧洲成人| av片在线观看永久免费| www.99av| 午夜不卡视频| 91美女在线| 免费女人毛片视频| 午夜av在线播放| 国产国产人免费人成免费视频| 99在线免费观看| 国产在线拍揄自揄拍视频| 国产羞羞视频在线播放| 精品国产白色丝袜高跟鞋| 夜夜嗨yeyeh| 国产麻豆视频免费观看| 91欧洲在线视精品在亚洲| 欧美日韩一区二区三区视视频| 免费视频中文字幕| 国产精品久久精品牛牛影视| 午夜在线网站| 国产三级av在线| а√最新版地址在线天堂| 中文字幕网站视频在线| 思思99精品视频在线观看| √天堂中文在线| www.操.com| 国产欧美黑人| 国产在线免费观看| 在线观看av网站永久| 国产专区在线| 亚洲国产成人综合| 国产黄色免费看| 久久久久久77777| av免费在线观| 在线国产91| 69免费视频| 国产成人综合美国十次| 国产女人在线视频| 日韩亚洲一区中文字幕| 91桃色在线| 在线中文字幕观看| 国产精品视频福利一区二区| 国产精品作爱| 国产女王在线**视频| 尤物视频在线免费观看| 免费视频二区| 国产在线视频福利| 欧美黑人乱大交| av在线免费观看网| 天天插天天操| 欧美日韩久久中文字幕| 日本一二区视频| 四虎成人精品在永久在线观看| 在线午夜视频| av中文天堂在线| 人成在线免费视频| 久久久久久久久久久久久91| 久久久久久91精品色婷婷| 国产中文字幕在线视频| 狠狠操五月天| 国产素人视频在线观看| 国产高清一区二区三区视频| 国产三级香港三韩国三级| 国产一区二区三区不卡免费观看| 91超碰在线免费| **三级三级97片毛片| 国产欧美黑人| 亚洲欧洲成人| 国产麻豆高清视频在线第一页| 最新中文字幕av专区| 91午夜在线| 交视频在线观看国产| 国产精品乱码一区二区三区视频| 在线免费看黄av| 狂野欧美性猛交xxxx乱大交| 天天操天天射天天插| 国产对白国语对白| 亚洲欧美中文字幕在线观看| 久久精品视频观看| 国产福利在线看| 日本黄色免费网址| 国产福利图片| 国产美女被草| 亚洲男人的天堂成人| 国产一级黄色电影| 久久精品国产亚洲a∨麻豆| 国产国产国产国产国产国产 | 日本一二三区视频免费高清| 五月天亚洲激情|