亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 編程 > BAT > 正文

批處理中的預(yù)處理實(shí)現(xiàn)代碼

2020-07-26 20:22:50
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

轉(zhuǎn)載自 nxhujiee最終編輯 LJ_SunTB批處理中的【預(yù)處理】
━━━━━━━━━━━━━━━━━━━━━━━━━━

如果你對(duì)脫字字符“^”的處理機(jī)制比較熟悉那么可以接著閱讀,否
則請(qǐng)先參考脫字字符的相關(guān)文章。

一、預(yù)處理究竟要做什么?

根據(jù)我的經(jīng)驗(yàn),預(yù)處理要做的是變量值的替換和特殊符號(hào)的處理。究竟先執(zhí)行哪個(gè)操作呢,我認(rèn)為要先進(jìn)行變量值的替換。理由有三:

1、 從邏輯上看

set var=2&echo %var%
類(lèi)似于這樣的語(yǔ)句,如果說(shuō)先進(jìn)行特殊符號(hào)處理的話,勢(shì)必要先處理符號(hào)“&”,而“&”是用來(lái)連接兩條命令的,這樣一來(lái)該行就理所應(yīng)當(dāng)?shù)谋焕斫鉃閮删?,那么我們還要變量延遲干嘛。這里應(yīng)該是
先對(duì)變量var賦值,然后處理特殊符號(hào)“&”。

2、從運(yùn)行結(jié)果看

復(fù)制代碼 代碼如下:

@echo off
set var=^^^>
echo %var%
pause

這句“set var=^^^>”首先也會(huì)被預(yù)處理,預(yù)處理之后var的值為“^>”。
本例的輸出結(jié)果是“>”,因此可以證明系統(tǒng)先將變量的值替換為“^>”然后再處理特殊符號(hào)“^”。

3、從變量替換上看
復(fù)制代碼 代碼如下:

@echo off
set ^&var=hero
echo %&var%
pause

結(jié)果:顯示“hero”
這也說(shuō)明變量的替換先于特殊符號(hào)的處理。

二、啟動(dòng)了變量延遲之后預(yù)處理又是如何進(jìn)行呢?

我的看法是這樣的:如果語(yǔ)句中存在英文嘆號(hào)“!”則會(huì)被預(yù)處理兩次,其它情況仍然是預(yù)處理一次。由于脫字字符比較特殊,因此在此借助該符號(hào)寫(xiě)幾個(gè)例子說(shuō)明一下。

(一)
復(fù)制代碼 代碼如下:

@echo off
echo !^^^^^>
setlocal enabledelayedexpansion
echo !^^^^^>
pause

兩個(gè)echo語(yǔ)句的結(jié)果不同。下面做一下分析:
對(duì)于第一個(gè)echo語(yǔ)句,變量延遲沒(méi)有開(kāi)啟,進(jìn)行預(yù)處理的時(shí)候該句就被預(yù)處理為“echo !^^>”,這也就是輸出的結(jié)果。由此可見(jiàn)預(yù)處理只進(jìn)行了一次。

對(duì)于第二個(gè)echo語(yǔ)句,此時(shí)變量延遲開(kāi)啟,由于有“!”存在,首先進(jìn)行一次預(yù)處理得到“echo !^^>”,再進(jìn)行一次得到“echo ^>”,結(jié)果也是如此。
之所以沒(méi)有輸出嘆號(hào),是因?yàn)殚_(kāi)啟了變量延遲,嘆號(hào)就變?yōu)榱颂厥夥?hào)。


(二)
復(fù)制代碼 代碼如下:

@echo off
setlocal enabledelayedexpansion
set var=hero
echo !var!
pause

像這里的“echo !var!”不是沒(méi)有被預(yù)處理,而是被預(yù)處理了兩次。看下面的這段代碼就可以理解了。
復(fù)制代碼 代碼如下:

@echo off
setlocal enabledelayedexpansion
set var=hero
echo !var!^^^^^>
pause

運(yùn)行的結(jié)果為:“hero^>”。我們來(lái)分析一下,進(jìn)行第一次預(yù)處理時(shí),由于“!var!”,因此先不替換變量值而進(jìn)行特殊符號(hào)的處理,處理完后就成了“echo !var!^^>”;之后再進(jìn)行一次預(yù)處理,
此時(shí)就要替換“!var!”了,處理完后就成了“echo hero^>”。


(三)
我們?cè)賮?lái)看看當(dāng)變量延遲開(kāi)啟時(shí)語(yǔ)句中不存在英文嘆號(hào)的情況。
復(fù)制代碼 代碼如下:

@echo off
echo ^^^^^>
setlocal enabledelayedexpansion
echo ^^^^^>
pause

@echo off
set var=hero
echo %var%^^^^^>
setlocal enabledelayedexpansion
echo %var%^^^^^>
pause

怎么樣,也就是說(shuō)如果沒(méi)有“!”就不會(huì)進(jìn)行第二次處理。


(四)
對(duì)于!!型,特殊符號(hào)的處理是在變量替換之前進(jìn)行的。

例、
復(fù)制代碼 代碼如下:

@echo off
setlocal enabledelayedexpansion
set ^&var=hero
echo !&var!
pause

這段代碼運(yùn)行結(jié)果是錯(cuò)誤的。

例、
復(fù)制代碼 代碼如下:

@echo off
setlocal enabledelayedexpansion
set var=^&
echo !var!
pause

這段代碼運(yùn)行結(jié)果是正確的。


(五)
既然都要處理符號(hào),那么%%型和!!型的符號(hào)處理會(huì)不會(huì)是同一個(gè)過(guò)程?

(一)中的例子已經(jīng)可以說(shuō)明問(wèn)題,不過(guò)我還有例子可以證明。

例、
復(fù)制代碼 代碼如下:

@echo off
echo "^^^^^^^^"!!
setlocal enabledelayedexpansion
echo "^^^^^^^^"!!
pause

對(duì)于%%型,在符號(hào)處理時(shí),不處理雙引號(hào)間的脫字字符;而對(duì)于!!型則相反。


三、call引出的一些問(wèn)題

(一)
call與脫字字符

例、
復(fù)制代碼 代碼如下:

@echo off
set /p var=<hero.txt
echo "%var%"
call echo "%var%"
pause

其中hero.txt中的內(nèi)容為8個(gè)脫字字符:^^^^^^^^

結(jié)果是:
"^^^^^^^^"
"^^^^^^^^^^^^^^^^"
請(qǐng)按任意鍵繼續(xù). . .

結(jié)果是否有些出乎意料?我們知道,系統(tǒng)在預(yù)處理時(shí)不會(huì)處理雙引號(hào)間的脫字字符,那就意味著是call命令將其后的脫字字符數(shù)量加了倍??磥?lái)call命令和脫字字符還真有點(diǎn)“曖昧”。

例、
復(fù)制代碼 代碼如下:

@echo off
set /p var=<hero.txt
echo %var%
call echo %var%
pause

本例中變量var的值為8個(gè)“^”,運(yùn)行“call echo %var%”時(shí),首先進(jìn)行變量替換把%var%替換為^^^^^^^^,再經(jīng)一次符號(hào)的處理變?yōu)閊^^^,此時(shí)由于call命令使得脫字字符數(shù)目增加一倍變?yōu)?個(gè),然后再進(jìn)行
call本身的預(yù)處理,這樣結(jié)果就為4個(gè)“^”。

這樣就能解釋下面的代碼為什么會(huì)顯示4個(gè)“^”。
復(fù)制代碼 代碼如下:

@echo off
call call call call echo ^^^^^^^^
pause


(二)
call與其它特殊字符
這里所說(shuō)的“其它特殊字符”主要指&、>、|等。

這里請(qǐng)?jiān)试S我自定義兩個(gè)名詞:
主預(yù)處理過(guò)程:系統(tǒng)本身預(yù)處理過(guò)程的總稱(chēng),其中包括了%%型和!!型。
次預(yù)處理過(guò)程:由于call命令引起的預(yù)處理過(guò)程的總稱(chēng)。
“其它特殊字符”是在主預(yù)處理過(guò)程中被系統(tǒng)識(shí)別的,而在次預(yù)處理
過(guò)程中對(duì)這些符號(hào)的識(shí)別是有問(wèn)題的。

例、
復(fù)制代碼 代碼如下:

@echo off
call echo hero!^&pause
pause

本例中,經(jīng)過(guò)主預(yù)處理過(guò)程,&被識(shí)別為普通字符,而在次預(yù)處理過(guò)程中符號(hào)&的識(shí)別將產(chǎn)生問(wèn)題。正如《命令行參考》中提到的--不要在call 命令中使用管道和重定向符號(hào)。(這倒不是說(shuō)call語(yǔ)句中不能使
用那些符號(hào),而是這些符號(hào)不能作為參數(shù)傳遞給call命令。)

這也從某種程度上說(shuō)明某行語(yǔ)句的句子結(jié)構(gòu)(一條還是多條)和功能(是從定向輸出還是其它)是在主預(yù)處理過(guò)程中確定的。

以上所有內(nèi)容,只是我個(gè)人的看法,由于沒(méi)有官方文檔的支持,因此僅供參考。

那么我們學(xué)了以上種種內(nèi)容又有什么實(shí)際用途呢?我想,懂得了以上道理就可以寫(xiě)出更加個(gè)性化的代碼,同時(shí)也可以作為一種偽裝術(shù)在實(shí)際中應(yīng)用。

復(fù)制代碼 代碼如下:

@echo off
set ^&=setlocal enabledelayedexpansion
set ^^^^^hero=^^^^^&p
set ^au=^^^au
set ^^^^^^^^^=障眼法
%&%
set ^^^^^se=^^^se!
echo %^^^^%!%^^hero%!au%^se%

怎么樣,這段代碼能看明白嗎?

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
久久人体av| 丝袜足脚交91精品| 青娱乐国产盛宴| 中国一级片黄色一级片黄| av小片在线| 日韩欧美视频一区二区三区| 四虎4hutv紧急入口| 久久综合激情| 国产高清视频色在线www| 99精品国产在热久久| 福利一区视频在线观看| 91麻豆精品一区二区三区| 免费视频二区| 蜜桃臀一区二区三区| 久久国产麻豆精品| 青青一区二区| 国产成人三级视频| 国产视频三区四区| 郴州新闻综合频道在线直播| 456亚洲精品成人影院| 国产视频一区二区三区四区| 国产交换配乱淫视频免费| av在线日韩| 2019亚洲男人天堂| 日韩av免费电影| 国产一区二区三区四区老人| 欧洲有码在线视频| 欧美性受xxxx黑人xyx| 色狠狠综合天天综合综合| 欧美最猛性xxxxx喷水| 欧美亚洲国产一区二区三区va| 波多野结衣高清在线| 亚洲视频免费在线| 久久69国产一区二区蜜臀| 欧美刺激性大交免费视频| 久久一区二区中文字幕| 黄污在线观看| 国内精品中文字幕| 久久超级碰碰| 国产一区在线视频观看| 久久久久亚洲av无码专区首jn| 色悠悠亚洲一区二区| 久久久一二三四| 99国产精品免费视频观看| 在线无限看免费粉色视频| 深夜福利亚洲| 亚洲国产成人精品久久| 国产精选一区二区三区不卡催乳| 国产一级影视| 久久夜色精品国产噜噜av| 色婷婷激情视频| 免费欧美在线视频| 一区二区免费av| 黄色亚洲大片免费在线观看| www.五月婷婷.com| 亚洲一区不卡| 久久久一二三区| 日韩精品一区二区在线观看| av中文在线资源库| 农村黄色一级片| 日本午夜精品视频| 4438全国成人免费| 中文无码av一区二区三区| 亚洲精品国产偷自在线观看| 成人欧美一区二区三区在线湿哒哒| 久久久水蜜桃| 91精品网站| 日本中文一区二区三区| 午夜在线视频一区二区区别| 69视频在线播放| 欧美精品久久久久久久免费| 日韩美女一区二区三区在线观看| 精品国产亚洲一区二区三区在线观看| 2021最新国产精品一区| 中文字幕免费在线看线人动作大片| 欧美理论片在线观看| 久久影院电视剧免费观看| 免费成人av| 亚洲最快最全在线视频| 国产欧美综合一区二区三区| 国产精品va无码一区二区三区| 亚洲精品欧美日韩专区| 久久久久久久久久伊人| 日韩亚洲在线| 亚洲AV无码精品色毛片浪潮| 亚洲男人天堂2019| 久久精品视频网站| 色婷婷综合视频在线观看| 网友自拍亚洲| 免费av手机在线观看| а√天堂中文资源在线bt| 国产18精品乱码免费看| 日本精品一区二区三区视频| 日韩专区在线| 人妻与黑人一区二区三区| 男女午夜视频在线观看| 日韩精品在线一区二区| 这里只有精品视频| 国产精品国产亚洲精品看不卡| 日韩欧美在线一区二区| а√资源新版在线天堂| 久久99国产视频| 97人妻精品一区二区三区动漫| 午夜精品www| 日本高清视频在线| 国产51自产区| 日韩一卡二卡在线观看| 国产亚洲精品久久久久久| 日韩精选在线| 亚洲成人精品一区二区| 久久一本综合| 午夜伦伦电影理论片费看| 欧美成人精品欧美一级私黄| 欧美激情影音先锋| 波多野结衣办公室33分钟| 国产麻豆综合视频在线观看| 一区二区视频在线播放| 欧美一区二区三区四区在线| 成人中文字幕视频| 久久久在线免费观看| 国产精品免费观看久久| 欧美自拍偷拍第一页| 呦呦视频在线观看| 亚洲18女电影在线观看| 免费av网站大全久久| 91视频免费在线看| 少妇又色又爽又黄的视频| 欧美jizzhd精品欧美巨大免费| 丁香另类激情小说| 成人亚洲在线观看| 天天鲁一鲁摸一摸爽一爽| 最新中文字幕在线| 亚洲国产精品成人一区二区在线| 精精国产xxxx视频在线播放| 欧美精品久久一区二区三区| 综合 欧美 亚洲日本| 大尺度做爰床戏呻吟舒畅| 97在线资源在| 91午夜精品亚洲一区二区三区| 日韩av在线中文字幕| 性欧美18~19sex高清播放| 国产成人av免费| 91麻豆产精品久久久久久夏晴子| 美女视频黄a大片欧美| 国产精品毛片久久久久久| 亚洲一卡二卡三卡四卡五卡| 美女三级福利视频| 成 人 黄 色 小说网站 s色| 国产精品18久久久久久久久久久久| 日本高清免费在线视频| 欧美日韩在线三级| 一区二区成人在线视频| 国产精品美女久久久久人| 日本中文字幕在线播放| 久久av老司机精品网站导航| 九九热久久免费视频| 婷婷激情四射五月天| 国产福利三区| 亚洲五月激情网| 99国产精品自拍| 女性生殖扒开酷刑vk| 久久久久久久久久久影院| 午夜视频在线观看一区二区三区| 精品人妻一区二区三区四区| 国产视频97| 国产一伦一伦一伦| 亚洲成人国产综合| 久久久午夜精品福利内容| 少妇极品熟妇人妻无码| 高h震动喷水双性1v1| 免费av在线一区| 中文av资源| 亚洲欧美自拍视频| 天使萌一区二区三区免费观看| 国产农村妇女精品一区二区| 影音先锋电影在线观看| 亚洲欧洲日本一区二区三区| 欧美日韩国产三区| 日韩乱码一区二区三区| 国产日本韩国在线播放| 激情一区二区| 黄色动漫在线观看| 国产成人亚洲综合无码| 国产成人精品无码高潮| 久久久久久久久久久久久国产| 国内成人精品一区| 欧美福利电影在线观看| 日本小视频在线免费观看| 亚洲香蕉视频| 一二三四中文字幕| 91小视频在线免费看| 成人av免费在线播放| 精品一区二区6| 久久久久久**毛片大全| 久久久久久欧美精品色一二三四| 草久视频在线观看| 青青草国产精品视频| 国产免费的av| 污视频网站在线看| 欧美性xxxx极品hd欧美风情| 欧美亚洲国产一卡| 日韩av在线导航| 日韩av自拍| 视频午夜在线| 日韩美女精品在线| 国产在线视视频有精品| 日韩小视频在线观看专区| 亚洲小说欧美另类婷婷| 国产精彩视频一区二区| 日本网址在线观看| 911av视频| 九九视频免费观看视频精品| 亚洲成a人在线观看| 中文字幕av久久爽av| 91av一区| 欧美一级淫片免费视频魅影视频| 欧美高清视频在线观看mv| 99re在线视频免费观看| 污污网站免费看| 欧美性xxxx交| 日韩在线欧美在线国产在线| 国产精九九网站漫画| 日韩电影免费观看高清完整| 久久久久久欧美精品色一二三四| 成年人黄视频网站| 欧美国产一区二区在线| 在线观看国产一区二区三区| 日韩免费电影一区二区| 制服丝袜亚洲播放| 精品久久久久久久久久久院品网| av中文字幕电影在线看| 韩日欧美一区二区三区| 天天影视涩香欲综合网| 99精品久久只有精品| 久草免费在线色站| 国产精品免费视频网站| 国产欧美自拍视频| 137大胆人体在线观看| 成人在线激情网| 中文字幕777| 99精品热6080yy久久| 激情小视频在线观看| 久久久久久成人网| koreanbj精品视频一区| 3d蒂法精品啪啪一区二区免费| 亚洲精品日产aⅴ| 欧美成人精品一区二区免费看片| 麻豆国产一区二区| 在线视频一区二区免费| chinese偷拍一区二区三区| 成年人av电影| 国产精品视频一区二区久久| 成人av先锋影音| 狠狠操综合网| 亚洲一品av免费观看| 精彩视频一区二区三区| www.国产.com| 日韩在线精品一区| 亚洲一区二区精品3399| 久久色精品视频| 欧美激情中文字幕乱码免费| 国产91色在线观看| 99tv成人| av成人午夜| 手机在线观看你懂的| 欧美va亚洲va国产综合| 国产精品99久久久久久宅男| 国产成人免费看一级大黄| 国产情侣一区在线| 欧美日韩精品电影| 欧美女激情福利| 亚洲av无日韩毛片久久| 茄子视频成人免费观看| 草草视频在线免费观看| 性生活视频网站| 午夜精品久久久久久久无码| 国产一区白浆| 三级黄色在线观看| 女色窝人体色77777| 久久成人18免费网站| 无码人妻一区二区三区精品视频| 亚洲综合在线一区| 少妇高潮喷水在线观看| 欧美xxxx性xxxxx高清| 中文日韩欧美| 日本三级久久久| 中文字幕在线字幕中文| 欧美高清视频不卡网| 午夜天堂在线观看| av鲁丝一区鲁丝二区鲁丝三区| 亚洲午夜国产成人av电影男同| 香蒸焦蕉伊在线| 亚洲图区欧美| 麻豆精品一区二区| 欧美肥臀大乳一区二区免费视频| 超碰日本道色综合久久综合| 免费观看成年人视频| 99综合电影在线视频| 国产精品午夜久久久久久| 欧美不卡在线视频| 亚洲成aⅴ人片久久青草影院| 久草综合在线视频| 欧美在线999| 国产91精品最新在线播放| 欧美与动交zoz0z| 亚洲xxxx做受欧美| 精品亚洲成av人在线观看| 久久精品ww人人做人人爽| 日韩一区国产二区欧美三区| 国产剧情在线观看一区| 蜜桃视频一区二区| 国产精选一区二区| 国产精品二区三区| 97在线免费公开视频| 国产a级毛片一区| 日韩精品成人一区二区在线| 亚洲午夜精品一区二区国产| 国产伦精品一区二区三区视频黑人| 91精品欧美综合在线观看最新| 久久久久久久久久综合| 青娱乐一区二区| 国产原创popny丨九色| free性丰满69性欧美| 婷婷丁香一区二区三区| 任你操这里只有精品| 黑人极品videos精品欧美裸| 国产亚洲在线| 国产欧美一二三区|