婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 批處理技術內幕 ECHO命令介紹

批處理技術內幕 ECHO命令介紹

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

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

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

@echo off

echo=
echo,
echo;

echo+
echo/
echo[
echo]

echo:
echo.
echo\
pause

這十種方法可以分為三組,每組的效率依次遞減。可悲的是,那些被奉為經典的教程給出的卻是效率最低那組中的echo.

echo.不僅效率低下,而且還容易引發錯誤:
復制代碼 代碼如下:

@echo off
cd .>echo
echo.
pause

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

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

你可能又要問,那為什么用空格做分隔符卻不能輸出空行呢?那是因為在輸出之前,CMD要檢查echo命令的參數是不是on或者off,或者參數為空:首先跳過所有空白字符,如果跳過之后字符串就結束了,那么就認為沒有加參數,輸出echo是on還是off;如果字符串沒有結束,就調用wcsnicmp函數來判斷剩下的字符串是否為on或者off,進而修改echo的狀態。

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

@echo off
echo
echo on
echo
pause

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

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


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

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

復制代碼 代碼如下:

#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程序,就會發現echo.那行返回的不是-1。

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

@echo off
cd .>echo
echo.
pause

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

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

關閉了CMD拓展,沒有問題。
復制代碼 代碼如下:

@echo off
md echo
echo.
pause

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

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

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

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

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

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

巨人網絡通訊聲明:本文標題《批處理技術內幕 ECHO命令介紹》,本文關鍵詞  批處理,技術,內幕,ECHO,命令,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《批處理技術內幕 ECHO命令介紹》相關的同類信息!
  • 本頁收集關于批處理技術內幕 ECHO命令介紹的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美成人一区二区三区在线观看 | 国产一区二区三区四区在线观看| 99视频超级精品| 精品国产乱码久久久久久浪潮| 蜜臀av性久久久久av蜜臀妖精| 欧美日韩一区不卡| 奇米综合一区二区三区精品视频 | 91精品国产综合久久小美女| 久久99日本精品| 国产亚洲一区二区在线观看| 丰满亚洲少妇av| 日韩一级大片在线| 九色|91porny| 中文字幕中文字幕在线一区 | 老司机免费视频一区二区三区| 亚洲国产精品精华液2区45| 国产精品一区二区男女羞羞无遮挡 | 欧美三级欧美一级| 色综合久久中文综合久久97| 亚洲大片一区二区三区| 日韩欧美激情四射| 国产麻豆精品theporn| 肉丝袜脚交视频一区二区| 日韩精品一区二区三区视频在线观看| 欧美图区在线视频| 国产成人日日夜夜| 亚洲精品美腿丝袜| 欧美一区二区免费观在线| 精品一区二区久久| 国产一区二区三区黄视频| 国产乱人伦偷精品视频不卡| 国产乱子轮精品视频| 久久激情五月婷婷| 激情五月播播久久久精品| 中文字幕高清不卡| 亚洲日本va在线观看| 欧美人妖巨大在线| 成人免费毛片app| 亚洲图片有声小说| 国产欧美一区二区在线| 色悠悠亚洲一区二区| 97aⅴ精品视频一二三区| 日日夜夜精品视频免费| 午夜久久电影网| 夜夜精品浪潮av一区二区三区| 欧美亚洲国产一卡| 日韩一区二区三区视频| 久久久亚洲欧洲日产国码αv| 91麻豆精品91久久久久久清纯 | 美女脱光内衣内裤视频久久网站 | 9人人澡人人爽人人精品| 久久99久国产精品黄毛片色诱| 久久99精品久久久久久动态图| 午夜亚洲国产au精品一区二区| 国产精品伦理一区二区| 国产欧美一二三区| 国产精品丝袜一区| 国产精品白丝在线| 国产欧美一区二区精品性色超碰 | 成人欧美一区二区三区白人| 成人丝袜18视频在线观看| 国产高清在线精品| 毛片基地黄久久久久久天堂| 美女久久久精品| 国产一区二区三区美女| 福利一区福利二区| 成人动漫视频在线| 在线免费av一区| 国产伦精品一区二区三区免费迷 | 欧美系列亚洲系列| 欧美一区二区三区免费视频| 精品入口麻豆88视频| 久久久久99精品一区| 国产精品麻豆欧美日韩ww| 欧美日韩免费一区二区三区视频| 91色porny在线视频| 一区二区不卡在线播放| 日韩av网站免费在线| 丝袜美腿亚洲色图| 久久国产精品99精品国产| 国产·精品毛片| 欧美在线一区二区三区| 日韩亚洲欧美综合| 国产人伦精品一区二区| 一区二区三区高清| 国产一区在线看| 看国产成人h片视频| 91精品婷婷国产综合久久竹菊| 日韩一区二区三区免费看| 国产精品久久三| 天堂av在线一区| 国产成人免费在线| 日韩欧美中文字幕制服| 亚洲精品乱码久久久久久| 日韩高清一级片| 99久久综合色| 欧美人牲a欧美精品| 亚洲欧美激情在线| 欧美影院午夜播放| 国产丝袜欧美中文另类| 亚洲成av人影院| 91久久精品一区二区三| 亚洲精品一区二区三区蜜桃下载 | 99视频超级精品| 欧美精品一区二区高清在线观看 | 欧美丝袜丝交足nylons图片| 国产网红主播福利一区二区| 日韩激情在线观看| 欧美精品日日鲁夜夜添| 亚洲天堂免费看| 国产精品一区二区三区四区 | 久久99精品视频| 91亚洲精品久久久蜜桃| 日韩午夜精品视频| 亚洲在线视频免费观看| 99九九99九九九视频精品| 欧美美女一区二区在线观看| 亚洲精选视频在线| 91亚洲资源网| 亚洲视频狠狠干| 色综合天天综合网国产成人综合天| 色偷偷久久人人79超碰人人澡| 久久久91精品国产一区二区三区| 九九九久久久精品| 日韩一区二区三区免费看 | 在线观看av一区| 亚洲精品日韩综合观看成人91| 99久久精品免费看国产免费软件| 久久尤物电影视频在线观看| 欧美大黄免费观看| 免费高清在线一区| 欧美成人vr18sexvr| 国产成人超碰人人澡人人澡| 欧美性色aⅴ视频一区日韩精品| 国产网站一区二区| 国产乱码精品一区二区三区忘忧草 | 青草国产精品久久久久久| 97精品久久久午夜一区二区三区| 精品少妇一区二区三区日产乱码 | 精品在线免费观看| 久久新电视剧免费观看| 国产精品香蕉一区二区三区| 国产精品天干天干在观线| 91一区二区在线观看| 亚洲国产精品一区二区久久恐怖片 | 亚洲欧美电影院| 99久久精品国产一区二区三区| 日本一区二区免费在线观看视频 | 国产亚洲成aⅴ人片在线观看 | 久久草av在线| 伊人色综合久久天天人手人婷| 日本大香伊一区二区三区| 蜜臀久久99精品久久久久久9 | 精品欧美一区二区三区精品久久| 日韩成人午夜精品| 久久先锋资源网| 97久久精品人人澡人人爽| 婷婷成人激情在线网| 久久精品在这里| 欧美三区免费完整视频在线观看| 精品一区二区三区av| 国产精品成人免费精品自在线观看| 在线看一区二区| 韩日精品视频一区| 亚洲国产精品视频| 久久久精品国产免费观看同学| 日本高清不卡一区| 国产精品资源站在线| 亚洲18女电影在线观看| 2欧美一区二区三区在线观看视频| 在线免费av一区| 懂色av一区二区三区蜜臀| 亚洲成人免费观看| 欧美日韩激情一区| 欧美私模裸体表演在线观看| 免费成人av在线播放| 国产精品毛片高清在线完整版| 欧美肥妇free| 高清久久久久久| 免费成人小视频| 亚洲色图制服诱惑| 久久综合99re88久久爱| 欧美群妇大交群中文字幕| 99视频超级精品| 成人h精品动漫一区二区三区| 久久激情五月激情| 亚洲成在线观看| 一区二区三区免费在线观看| 日本一区二区高清| 精品黑人一区二区三区久久| 欧美日韩精品福利| 欧美在线视频日韩| 99久久久国产精品免费蜜臀| 国产69精品久久久久毛片| 国产精品综合在线视频| 国产综合久久久久久久久久久久 | 欧洲一区在线观看| 成人高清视频在线| 粉嫩欧美一区二区三区高清影视| 久久精品国产99国产精品|