變量定義和引用
1.MS-DOS shell 對(duì)變量、命令、命令行參數(shù)的大小寫(xiě)區(qū)分嗎? 不區(qū)分
2.如何定義一個(gè)(環(huán)境)變量 ?
SET <variable>=[<value>]
如果 <value> 是空字符串,則取消變量的定義,變量的值用雙引號(hào)或空格結(jié)束。引號(hào)如果沒(méi)有結(jié)束,則默認(rèn)范圍到行尾。
3.如何定義一個(gè)局部(環(huán)境)變量?
代碼如下:
SETLOCAL
SET <variable>=[<value>]
ENDLOCAL
變量 <variable> 的值會(huì)在 ENDLOCAL 后恢復(fù)到 SETLOCAL 以前的值
4.如何使用 MS-DOS 腳本的調(diào)用參數(shù)?
ECHO %<n>
N 的范圍為 0-9 , %0 為文件名, %1-%9 為參數(shù),每次調(diào)用腳本最多支持 9 個(gè)參數(shù)
ECHO %*
%* 代表所有傳入的參數(shù),即 %1-%9 ,并且包括其中的空白符
另外,調(diào)用參數(shù)是 %0-%1 是只讀的,不可以重新賦值,否則程序掛起。
5. MS-DOS 如何分割腳本參數(shù)?
首先 MS-DOS 的解釋器 CMD 會(huì)將命令提示符后的命令行中的有定義的環(huán)境變量全部展開(kāi)(無(wú)定義的不變)。
然后,處理由 ^ 定義的轉(zhuǎn)義字符。
最后,用雙引號(hào)( " " )、逗號(hào)( , )、分號(hào)(;)和空白符分割,并將第一個(gè)分割后的部分用作命令名,其他的作為參數(shù),所有的參數(shù)中都包含各自的雙引號(hào),然而命令名中的雙引號(hào)在調(diào)用命令時(shí)沒(méi)有影響。逗號(hào)和分號(hào)以及空白符則不包含在分割的各部分中。
注:變量在腳本中只展開(kāi)一次,不會(huì)循環(huán)展開(kāi)。
6.如何對(duì)作參數(shù)的文件名進(jìn)行操作?
ECHO %~[<format>]<n>
<format>的取值如下:
%~<n> | 擴(kuò)展%<n>,然后去除雙引號(hào)(" ") |
%~f<n> | 擴(kuò)展%<n>, 取文件的全路徑/文件名/擴(kuò)展名,純字符串處理 |
%~d<n> | 擴(kuò)展%<n>, 取文件的驅(qū)動(dòng)器名 |
%~p<n> | 擴(kuò)展%<n>, 取文件的路徑名 |
%~n<n> | 擴(kuò)展%<n>, 取文件名,不包括擴(kuò)展名 |
%~x<n> | 擴(kuò)展%<n>, 取文件的擴(kuò)展名 |
%~s<n> | 擴(kuò)展%<n>, 只包括短文件名的全路徑/文件名/擴(kuò)展名 |
%~t<n> | 擴(kuò)展%<n>, 文件的最后修改時(shí)間 |
%~z<n> | 擴(kuò)展%<n>, 文件的大小 |
%~a<n> | 擴(kuò)展%<n>, 文件的屬性 |
%~$<var>:<n> | <var>一般是環(huán)境變量PATH, 從中尋找第一個(gè)匹配的文件名是%1的文件的全路徑,如果找不到則展開(kāi)為空 |
以上參數(shù)可以組合,其格式是:
%~[{f|d|a|z|s|n|x|t|p}][$<var>:]<n>
7.如何操縱讀取每個(gè)命令行參數(shù)?
SWITCH [/<n>]
從第n個(gè)參數(shù)開(kāi)始前移,第n個(gè)參數(shù)被溢出(n默認(rèn)為0),最后一個(gè)字符串被移入空值。這是使腳本文件接受10個(gè)以上參數(shù)的方法,但是該方法不可逆。Switch命令不影響%*的值。
8.如何查看一個(gè)命令的幫助信息?
<command> /?
通用的方法是用/?參數(shù),因此如果想編寫(xiě)符合這一慣例的腳本程序,也需要檢查傳入的第一個(gè)參數(shù)是否為/?
HELP <command>
9.如何引用環(huán)境變量?
%<variable>%
10.如何查看環(huán)境變量
SET [<search-string>]
如果<search-string>為空,顯示所有環(huán)境變量的定義,否則只顯示以<search-string>開(kāi)頭的環(huán)境變量。
11.如何刪除環(huán)境變量的定義?
只需將其值設(shè)置為空即可:
SET <variable>=
更多信息請(qǐng)查看IT技術(shù)專欄