DOS?批處理如何使用變量的延遲擴(kuò)展(講解簡(jiǎn)約版)
如何使用變量延遲擴(kuò)展
使用變量延遲擴(kuò)展之前,需要先開啟cmd.exe的變量延遲展開特性
獲取延遲變量值,變量名兩邊需要加“!”,而不是“%”(變量展開時(shí),使用“%”)
如何開啟cmd.exe的變量延遲擴(kuò)展特性
cmd.exe的變量延遲展開特性缺省是關(guān)閉的,開啟它的方法目前有兩個(gè):
1、命令行環(huán)境中,使用“ cmd.exe /v:on ” 命令,它會(huì)打開一個(gè)新的命令行環(huán)境,在使用“ cmd.exe /v:off ” 命令開啟一個(gè)新的命令行環(huán)境(或者使用exit退出這個(gè)環(huán)境)之前,變量延遲擴(kuò)展特性始終有效。示例如下:
C:\>cmd /v:off Microsoft Windows [版本 6.1.7601] 版權(quán)所有 (c) 2009 Microsoft Corporation。保留所有權(quán)利。 C:\>set first=1 C:\>set first=2 && echo %first% 1 C:\>cmd /v:on Microsoft Windows [版本 6.1.7601] 版權(quán)所有 (c) 2009 Microsoft Corporation。保留所有權(quán)利。 C:\>echo %first% 2 C:\>set first=3 && echo %first% 2 C:\>echo %first% 3 C:\>set first=4 && echo !first! 4 C:\>
2、在批處理文件中,在下面兩個(gè)局部空間之一:
“setlocal EnableDelayedExpansion” 和 “endlocal”兩個(gè)命令之間的局部空間中
“setlocal EnableDelayedExpansion” 和 批處理文件的結(jié)尾處之間的局部空間中則會(huì)
自動(dòng)啟用cmd.exe的變量延遲展開特性
對(duì)變量的修改被限制到該局部空間中
也就是說, 在“endlocal” 命令(或退出批處理文件)之后,cmd.exe的變量延遲擴(kuò)展特性和在該局部空間中對(duì)變量的所做的修改都將一同消失。
示例
demo.bat的內(nèi)容如下:
::demo.bat @echo off set var=out setlocal EnableDelayedExpansion set var=one for %%a in (a.txt) do ( set var=two echo !var! for %%a in (b.txt) do ( echo !var! set var=three echo !var! ) ) endlocal echo !var! echo %var%
運(yùn)行
C:\>demo
two
two
three
!var!
out
C:\>
如果想更深入的了解enabledelayedexpansion詳解可以參考這篇文章
到此這篇關(guān)于DOS 批處理如何使用變量的延遲擴(kuò)展(講解簡(jiǎn)約版)的文章就介紹到這了,更多相關(guān)DOS延遲擴(kuò)展內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
定時(shí)刪除一個(gè)文件夾內(nèi)的所有子文件夾和文件的方法
這篇文章主要介紹了定時(shí)刪除一個(gè)文件夾內(nèi)的所有子文件夾和文件的方法,需要的朋友可以參考下2016-06-06Getmac返回計(jì)算機(jī)中所有網(wǎng)卡的媒體訪問控制 (MAC) 地址以及每個(gè)地址的網(wǎng)絡(luò)協(xié)議列表
Getmac返回計(jì)算機(jī)中所有網(wǎng)卡的媒體訪問控制 (MAC) 地址以及每個(gè)地址的網(wǎng)絡(luò)協(xié)議列表...2007-09-09