国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
MS-DOS腳本編程[3]-控制結(jié)構(gòu) - 懵懵燈燈的BLOG - BlogJava

控制結(jié)構(gòu)

 

1.       如何定義行號(hào)?

:<label>

       可以定義任意長(zhǎng)度的 label 并且中間允許有空格,但是 MS-DOS 只區(qū)分其中的前 8 個(gè)字符,以冒號(hào)開(kāi)頭的腳本文件行不被處理。

行號(hào)同樣不區(qū)分大小寫(xiě)。行號(hào)的冒號(hào)前面可以有空白符號(hào)。

 

2.       如何使用 GOTO 語(yǔ)句?

GOTO <label>

<label> 一般為所定義的行號(hào),如果命令擴(kuò)展被允許( default )也可以用命令跳轉(zhuǎn)到文件末尾:

GOTO :EOF

              :EOF 不區(qū)分大小寫(xiě)

              如果命令找不到需要跳轉(zhuǎn)的行好位置,則顯示:

Label not found

3.       如何使用 For 循環(huán)語(yǔ)句?

FOR {%<var>|%%<var>} IN (<set>) DO <command>

FOR 語(yǔ)句可以在命令行和腳本文件中使用,在腳本文件中使用,變量定義和引用用 %% ;在命令行中使用,變量定義和引用用 % 。變量名是大小寫(xiě)敏感的,并且可以用除了 0 9 任意的單個(gè)字符(不包含元符號(hào)),這點(diǎn)比較特殊。 DO 后面是需要執(zhí)行的語(yǔ)句, 循環(huán)變量的定義域在 DO 子句中。

 

<set> 有多種形式考慮:

l       可以是字符串的集合,中間用空白符分割:

 

<string> <string> <string>

l       可以是通配符展開(kāi)的 文件名或路徑名

*.bat  *.?ml

另外文件名還可以是特殊的字符 , 當(dāng)前目錄 (.) 和上級(jí)目錄( ..

這些內(nèi)容之間可以通過(guò)分隔符分開(kāi),分隔符是空白、分號(hào)、逗號(hào)、雙引號(hào),注意引號(hào)本身會(huì)傳遞到循環(huán)變量中去, 而分號(hào)和逗號(hào)則不會(huì),另外如果其他三種分隔符出現(xiàn)在雙引號(hào)中,他們會(huì)被傳遞到循環(huán)變量中去。

 

可以對(duì)不同種類的 <set> 值進(jìn)行遍歷:

l       對(duì)字符串遍歷

FOR %%<var> IN (<string-set>) DO <command>

l       對(duì)文件進(jìn)行遍歷

FOR %%<var> IN (<file-path-name-wildcard>) DO <command>

              下面的命令需要命令擴(kuò)展打開(kāi)

l       對(duì)目錄進(jìn)行遍歷

FOR /D %%<var> IN (<dir-path-name-wildcard>) DO <command>

 

l       遞歸遍歷文件樹(shù)

FOR /R [[<driver>:]<path>] %%<var> IN (<set>) DO <command>

              如果沒(méi)有目錄指定,則默認(rèn)從當(dāng)前目錄開(kāi)始。

l       進(jìn)行步長(zhǎng)型循環(huán)

FOR /L %%<var> IN  (<start> <step> <end>) DO <command>

其中 <start> <step> <end> 是整數(shù)(其他數(shù)會(huì)取整),無(wú)法解釋的字符串認(rèn)為是 0 ,可以遞增或遞減。

l       文件遍歷和解析

FOR /F ["<parsing-keywords>"] %%<var> IN (<set>) DO <command>

其中 <parsing-keywords> 的形式(大小寫(xiě)不敏感)如下:

       eof=<c>       #<c> 是一個(gè)字符的行結(jié)束符,默認(rèn)是 newline 字符,行結(jié)束符后面認(rèn)為是注釋

       skip=<N>       #<N> 是從行首跳過(guò)的行數(shù),默認(rèn)是 0

delims=<xxx>   #<xxx> 是記錄字段的分隔符集,默認(rèn)是空格和 <tab> ,覆蓋默認(rèn)會(huì)提取空白

tokens=[{<X>,|<M>-<N>,}…][*]  # 指定提取的記錄字段,默認(rèn)是 1 ,最后的 * 代表剩余字段

                                                        # 剩余字段不會(huì)去除分隔符,但是去除注釋

usebackq        # 使用 back quotation 作為命令的引用符(見(jiàn) <set> 的格式),默認(rèn)是不使用

 

如果不使用 usebackq 選項(xiàng), <set> 的形式:

<file-set>                     #no quotation

“<literal-string>”   #double quotation

‘<command>’      #single quotation

如果使用 useback 選項(xiàng), <set> 的形式:

 

“<file-set>”          # double quotation

‘<literal-string>’     #single quotation

`<command>`      #back quotation

 

關(guān)于隱含變量,只需指定首個(gè)變量的字母,其它按順序依次排列,最多可以定義 26 個(gè)變量。(大小寫(xiě)敏感)

 

 

 

FOR 語(yǔ)句中的變量名同樣可以展開(kāi)為:

%%~[{f|d|a|z|s|n|x|t|p}][$<var>:]<c>

 

4.       IF

條件語(yǔ)句的語(yǔ)法格式為:

      IF [NOT] <condition> <command> [ELSE <command>]

       其中 NOT 表示條件真值去反。

      

       利用不同的 <condition>, 我們可以判斷

l       ERROR-LEVEL:

ERRORLEVEL <n>

等于或大于 <n> 的錯(cuò)誤發(fā)生時(shí)為真

l       字符串相等

<string>==<string>

字符串相等,不需要用引號(hào)環(huán)繞

l       文件存在

EXIST <file-or-dir-name>

下面需要命令擴(kuò)展打開(kāi)

l       字符串比較

[/I] <string> <comparator> <string>

/I 選項(xiàng)打開(kāi)則比較是 case-insensitive, 如果都是數(shù)字作比較,則轉(zhuǎn)為用數(shù)值比較,只能比較整數(shù),比較浮點(diǎn)數(shù)則采用字符串比較法。

 

比較操作符 ( 大小寫(xiě)不敏感 ) 包括:

EQU ( 等于 ) 、 LSS ( 小于 ) 、 GTR ( 大于 ) GEQ( 大于等于 ) 、 LEQ( 小于等于 ) 、 NEQ( 不等)

l       命令行擴(kuò)展版本

CMDEXTVERSION <n>

              當(dāng)命令擴(kuò)展版本號(hào)大于或等于 <n> 時(shí)為真,該值最低版本為 1

l       變量定義

DEFINE <var-name>

              如果變量的定義存在則為真

             

則自動(dòng)增加一下變量定義

-          %ERRORLEVEL% 定義為當(dāng)前的即上次命令行執(zhí)行產(chǎn)生的 errorlevel (一定有定義)

-          %CMDCMDLINE% 定義為上次傳遞給命令解釋器 (cmd.exe) 的未經(jīng)處理的原始命令行。 (如果 %CMDCMDLINE% 未被定義,否則不影響原始值)

-          %CMDEXTVERSION% 定義為當(dāng)前命令擴(kuò)展的版本號(hào)(如果 % CMDEXTVERSION % 未被定義,否則不影響原始值)

 

如果使用 ELSE 語(yǔ)句應(yīng)當(dāng)用以下形式,因?yàn)楸仨氂脧?fù)合語(yǔ)句或 newline 來(lái)結(jié)束 <command>:

IF [NOT] <condition> (

      <command>

) ELSE IF (

      <command>

) ELSE (

      <command>

)

或者:

IF [NOT] <condition> (<command>) ELSE (<command>)

 

5.       CHOICE

選項(xiàng)分支命令,格式如下:

CHOICE [/c [<choices>]] [/n] [/cs] [/t <timeout> /d <default>] [/m <msg>]

其中 /c 選項(xiàng)指定用戶的選擇鍵,默認(rèn)是 yn ,其顯示為:

[Y, N]?

       /cs 指定大小寫(xiě)敏感選擇,默認(rèn)不敏感,如果不敏感則提示選擇鍵都采用大寫(xiě)字符。

       /n 隱藏鍵提示信息。

       /t 指定超時(shí)時(shí)間 (second) ,根據(jù)版本不同可能會(huì)顯示遞減的計(jì)時(shí)數(shù)字,默認(rèn)不超時(shí)。

       /d 超時(shí)后的默認(rèn)選項(xiàng)。

       /m 指定提示信息,顯示在選擇鍵提示前面。

注意,該命令不是所有的命令解釋器都支持。

該命令返回用戶選擇鍵的序號(hào) ( 1 開(kāi)始 ) 作為 errorlevel 的值 , 可由 IF 語(yǔ)句判斷。

 

6.       如何定義組合語(yǔ)句 ?

在上述控制語(yǔ)句中,如 DO 、 IF/ELSE 結(jié)構(gòu)中,經(jīng)常會(huì)嵌入一段代碼,由幾條語(yǔ)句構(gòu)成,這時(shí)候需要定義組合語(yǔ)句,甚至在有些結(jié)構(gòu)中,例如 IF/ELSE ,即使只有一條語(yǔ)句也寫(xiě)成組合語(yǔ)句的形式。組合語(yǔ)句定義如下:

(

<command-lines>

)

       特別是 <command-lines> 為空,即可以定義空語(yǔ)句。

       多個(gè)命令在一行時(shí)需要用 & 來(lái)分隔。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
CMake 手冊(cè)詳解(十七)
行為型設(shè)計(jì)模式(上)
BAT語(yǔ)句:if語(yǔ)句和for語(yǔ)句
BAT CMD 批處理文件腳本總結(jié)
第六章 if命令講解
Bash技巧:介紹v=var echo $v 和 v=var; echo $v的區(qū)別
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服