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