好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 批處理技術(shù)內(nèi)幕 ECHO命令介紹

批處理技術(shù)內(nèi)幕 ECHO命令介紹

熱門標(biāo)簽:江蘇手機(jī)外呼系統(tǒng)供應(yīng)商 福建防封電銷卡辦理套餐 江蘇辦理400電話是免費(fèi)的嗎 地圖標(biāo)注顯示小區(qū) 紹興400電話怎么辦理 滄州外呼增值業(yè)務(wù)線路解決方案 征服者博物館地圖標(biāo)注點(diǎn) 南京機(jī)器人外呼系統(tǒng)多少錢 沙依巴克工廠地圖標(biāo)注
眾所周知,如果echo后面跟一個(gè)環(huán)境變量,但是該變量卻為空時(shí),相當(dāng)于不加任何參數(shù)的echo,即輸出當(dāng)前echo是on還是off。很多文章或者教程給出的解決方案都是在echo后面加一個(gè)點(diǎn)號echo.,這樣就會輸出空行。
復(fù)制代碼 代碼如下:

@echo off
echo %demon.tw%
:: ECHO is off.
echo.%demon.tw%

pause據(jù)我所知,用echo輸出空行至少有十種方法:
復(fù)制代碼 代碼如下:

@echo off

echo=
echo,
echo;

echo+
echo/
echo[
echo]

echo:
echo.
echo\
pause

這十種方法可以分為三組,每組的效率依次遞減??杀氖?,那些被奉為經(jīng)典的教程給出的卻是效率最低那組中的echo.

echo.不僅效率低下,而且還容易引發(fā)錯(cuò)誤:
復(fù)制代碼 代碼如下:

@echo off
cd .>echo
echo.
pause

我知道你很難接受,但事實(shí)的確如此。

第一組中echo后面的=,;都是批處理中的分隔符,所以CMD可以正確地解析出echo命令,并把=,;作為echo命令的參數(shù)。是的,你沒有看錯(cuò),分隔符并不是用來分隔命令與參數(shù),它們通常是參數(shù)的一部分。既然是參數(shù),那么為什么不會被輸出?那是因?yàn)閑cho命令直接跳過了參數(shù)的第一個(gè)字符,從第二個(gè)字符開始輸出,而第二個(gè)字符是NUL,所以輸出了空行。

你可能又要問,那為什么用空格做分隔符卻不能輸出空行呢?那是因?yàn)樵谳敵鲋?,CMD要檢查echo命令的參數(shù)是不是on或者off,或者參數(shù)為空:首先跳過所有空白字符,如果跳過之后字符串就結(jié)束了,那么就認(rèn)為沒有加參數(shù),輸出echo是on還是off;如果字符串沒有結(jié)束,就調(diào)用wcsnicmp函數(shù)來判斷剩下的字符串是否為on或者off,進(jìn)而修改echo的狀態(tài)。

因此加上很多空格也是一樣的效果:
復(fù)制代碼 代碼如下:

@echo off
echo
echo on
echo
pause

而對于第二和第三組,事情就沒那么簡單了,由于echo后面跟的并不是分隔符,所以解析之后會被當(dāng)成一個(gè)整體,而echo+ echo/等等顯然又不是內(nèi)部命令,CMD會把它們當(dāng)做外部命令進(jìn)行搜索。嗯,你知道,搜索是很花時(shí)間的,這就是為什么它們的效率低于第一組。

可惜的是,CMD花了很大力氣搜索,卻仍然找不到這樣的外部命令,這時(shí)候它會嘗試著修復(fù)(Fix)命令,看看命令中是否有某些字符(如圖):


可以看到,CMD對:.\的處理跟+[]/不太一樣,如果是+[]/,CMD會直接把它們從命令中刪除并且添加到原有參數(shù)的前面;而如果是:.\并且CMD拓展是開啟的話,那么會多調(diào)用一次GetFileAttributes函數(shù)獲取文件屬性,多調(diào)用一次函數(shù)自然會多花一些時(shí)間,所以第三組的效率又稍稍比第二組的低些。

再來解釋一下為什么echo.有時(shí)候會引起錯(cuò)誤。文件名中是不能出現(xiàn):.\的,理論上GetFileAttributes函數(shù)都應(yīng)該返回-1(INVALID_FILE_ATTRIBUTES),然而事實(shí)卻不是如此,我也不知道這算不算GetFileAttributes函數(shù)的BUG:

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

#include stdio.h>
#include windows.h>

int main()
{
FILE *fp = fopen("echo", "wb");
fclose(fp);
printf("0x%x\n", GetFileAttributes("echo:"));
printf("0x%x\n", GetFileAttributes("echo."));
printf("0x%x\n", GetFileAttributes("echo/"));
return 0;
}

如果你測試一下上面的C程序,就會發(fā)現(xiàn)echo.那行返回的不是-1。

如果GetFileAttributes函數(shù)返回的不是-1(一般表示文件不存在),也不是0×10(表示文件是文件夾),那么命令還是會保持原來的樣子,當(dāng)成外部命令運(yùn)行。
復(fù)制代碼 代碼如下:

@echo off
cd .>echo
echo.
pause

‘echo.' is not recognized as an internal or external command, operable program or batch file.
復(fù)制代碼 代碼如下:

@echo off
cd .>echo
setlocal disableextensions
echo.
pause

關(guān)閉了CMD拓展,沒有問題。
復(fù)制代碼 代碼如下:

@echo off
md echo
echo.
pause

echo是文件夾而不是文件,沒有問題。

最后總結(jié)一下吧,在大部分情況下,你都應(yīng)該使用第一組的echo, echo; echo=來進(jìn)行輸出,它們的效率跟echo (空格)是一樣的,并且可以用來輸出on或者off,在變量為空時(shí)還能輸出空行。

但是echo, echo; echo=卻不能輸出以/?開頭的行,如果你需要,可以使用第二組的echo+ echo/ echo[ echo],它們的效率低一些,但能保證原樣輸出。

我不建議你使用第三組的echo: echo. echo\,如果你仍然要像垃圾教程里面那樣用,我也沒有辦法。
作者: Demon
鏈接: http://demon.tw/reverse/cmd-internal-echo.html

您可能感興趣的文章:
  • 批處理 Set 命令詳解 讓你理解set命令
  • DOS批處理之DATE命令的使用方法詳解
  • dos命令或批處理 發(fā)生系統(tǒng)錯(cuò)誤5 拒絕訪問
  • Windows下用命令行修改IP地址的方法詳解(附批處理文件)
  • Reg命令使用詳解 批處理操作注冊表必備
  • windows批處理命令教程
  • 批處理命令Start的使用介紹
  • 批處理命令詳解之目錄跳轉(zhuǎn):cd
  • 批處理命令教學(xué)之tree命令
  • 批處理命令教學(xué)之if語句
  • 批處理命令教學(xué)之管道符號(|)
  • 批處理命令教學(xué)之復(fù)合語句連接符(&、&&和||)
  • 批處理命令教學(xué)之字符串排序(sort)
  • 批處理命令教學(xué)之more命令

標(biāo)簽:香港 陽泉 湘西 小程序 吳忠 宜賓 烏魯木齊 巴中

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《批處理技術(shù)內(nèi)幕 ECHO命令介紹》,本文關(guān)鍵詞  批處理,技術(shù),內(nèi)幕,ECHO,命令,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《批處理技術(shù)內(nèi)幕 ECHO命令介紹》相關(guān)的同類信息!
  • 本頁收集關(guān)于批處理技術(shù)內(nèi)幕 ECHO命令介紹的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 糙汉老实攻双性诱受| 国产一国产看免费高清片| 亚洲AV欧美AV久久久爽色| 成人国内免费精品视频在线观看| 王祖贤被脱得精光三级| 女学生超短裙教室自慰| 艳妇荡乳欲伦2中文字幕| 日本人做爰毛片免费播| 91免费视频软件下载| 久久久一级| 猛烈顶撞高潮失禁哭叫求饶| 你太大了岳你太紧疼了| 小yin男娃的浪荡生活h| 猛烈顶弄H禁欲老师GAY| 四虎最新网名77777的来源和含义| 乱公和我做爽死我视频免费| 亚洲成a人片在线播放观看国产| 鸥美三级| 男人的j桶女人免费网站| 精品久久99麻豆蜜桃666| 中国人粉嫩小泬337p图片| 《色鬼强行侵犯女人》在线观看| 婬荡高潮叫床视频88va| 亚洲处破女A片出血首页| 成人影院在线完整版免费| 诱人的双乳| 久久夜色精品夜色噜噜亚| 疯狂孕妇孕交毛片| 美女黄色一级片| 国产香港乡下三级全黄在线观看| 男人操男人视频| 女主奶很大的H文1v1| 丝瓜视频18?免费观看?| 男全程露j同志电影| 亚洲AV秘?无码苍井空| 双手握住侠女硕大的双乳| 女性隆胸高清照无打码| 伦理电影午夜伧理片| 少妇被大黑捧猛烈进出动态图 | 欲色淫香| 狠狠 鲁 色 人阁丁香|