校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 批處理中setlocal enabledelayedexpansion的作用詳細整理

批處理中setlocal enabledelayedexpansion的作用詳細整理

熱門標簽:地圖標注顯示小區(qū) 南京機器人外呼系統(tǒng)多少錢 沙依巴克工廠地圖標注 福建防封電銷卡辦理套餐 紹興400電話怎么辦理 江蘇辦理400電話是免費的嗎 滄州外呼增值業(yè)務(wù)線路解決方案 征服者博物館地圖標注點 江蘇手機外呼系統(tǒng)供應(yīng)商

設(shè)置本地為延遲擴展。其實也就是:延遲變量,全稱延遲環(huán)境變量擴展, 想進階,變量延遲是必過的一關(guān)!所以這一部分希望你能認真看。

為了更好的說明問題,我們先引入一個例子。
例1:

@echo off 
set a=4 
set a=5echo %a% 
pause 

結(jié)果:4
解說:為什么是4而不是5呢?在echo之前明明已經(jīng)把變量a的值改成5了?讓我們先了解一下批處理運行命令的機制:批處理讀取命令時是按行讀取的(另外例如for命令等,其后用一對圓括號閉合的所有語句也當作一行),在處理之前要完成必要的預處理工作,這其中就包括對該行命令中的變量賦值。我們現(xiàn)在分析一下例1,批處理在運行到這句“set a=5echo %a%”之前,先把這一句整句讀取并做了預處理——對變量a賦了值,那么%a%當然就是4了!(沒有為什么,批處理就是這樣做的。)而為了能夠感知環(huán)境變量的動態(tài)變化,批處理設(shè)計了變量延遲。簡單來說,在讀取了一條完整的語句之后,不立即對該行的變量賦值,而會在某個單條語句執(zhí)行之前再進行賦值,也就是說“延遲”了對變量的賦值。那么如何開啟變量延遲呢?變量延遲又需要注意什么呢?

舉個例子說明一下:

例2:

@echo off 
setlocal enabledelayedexpansion 
set a=4 
set a=5echo !a! 
pause

結(jié)果:5
解說:由于啟動了變量延遲,得到了正確答案。變量延遲的啟動語句是“setlocal enabledelayedexpansion”,并且變量要用一對嘆號“!!”括起來(注意要用英文的嘆號),否則就沒有變量延遲的效果。分析一下例2,首先“setlocal enabledelayedexpansion”開啟變量延遲,然后“set a=4”先給變量a賦值為4,“set a=5echo !a!”這句是給變量a賦值為5并輸出(由于啟動了變量延遲,所以批處理能夠感知到動態(tài)變化,即不是先給該行變量賦值,而是在運行過程中給變量賦值,因此此時a的值就是5了)。再舉一個例子鞏固一下。
例3:

@echo off 
setlocal enabledelayedexpansion 
for /l %%i in (1,1,5) do ( set a=%%i echo !a! ) 
pause

結(jié)果:12345

解說:本例開啟了變量延遲并用“!!”將變量擴起來,因此得到我們預期的結(jié)果。如果不用變量延遲會出現(xiàn)什么結(jié)果呢?結(jié)果是這樣的:ECHO 處于關(guān)閉狀態(tài)。ECHO 處于關(guān)閉狀態(tài)。ECHO 處于關(guān)閉狀態(tài)。ECHO 處于關(guān)閉狀態(tài)。ECHO 處于關(guān)閉狀態(tài)。即沒有感知到for語句中的動態(tài)變化。

batman的說明

我來簡要說一下吧:
set:設(shè)置
local:本地(環(huán)境變量)
enable:能夠
delayed:延遲
expansion:擴展
setlocal enabledelayedexpansion就是擴展本地環(huán)境變量延遲,
比較下面兩段代碼:

@echo off 
for /l %%i in (1,1,10) do ( 
set "str=%%i" 
echo %str% 
) 
pause>nul 
@echo offsetlocal enabledelayedexpansion 
for /l %%i in (1,1,10) do ( 
set "str=%%i" 
echo !str! 
) 
pause>nul 

第一段代碼只會顯示10行“ECHO 處于關(guān)閉狀態(tài)。”,而第二段代碼則會正確顯示1-10的10行數(shù)字。這是為什么呢?因為在兩段代碼的for循環(huán)前str都是沒有被定義的,而由于第一段代碼沒有開啟變量延遲,所以str值一直是沒有定義,因而顯示出了10行報
錯信息;而第二段代碼開啟了變量延遲,在for循環(huán)中每次賦予str的值被傳遞下去,因而會正確顯示10行數(shù)字,但這里的str變量符必須要寫成!str!,這是沒有道理可講的,只要記住就好了。

setlocal enabledelayedexpansion 是什么意思?

是:設(shè)置本地為延遲擴展。其實也就是:延遲變量,全稱"延遲環(huán)境變量擴展",
在cmd執(zhí)行命令前會對腳本進行預處理,其中有一個過程是變量識別過程,在這個過程中,如果有兩個%括起來的如%value%類似這樣的變量,就會對其進行識別,并且查找這個變量對應(yīng)的值,再而將值替換掉這個變量,這個替換值的過程,就叫做變量擴展,然后再執(zhí)行命令。

在解釋之前,先看幾個例子的區(qū)別:
例一:

set value=kkkkkkk 
echo %value% 

將這段代碼保存到一個后綴為bat的文本文件中。然后打開dos,進到對應(yīng)目錄下,執(zhí)行這個文件,結(jié)果如下:
C:\Documents and Settings\Administrator\桌面\ln\temp\bat>set value=kkkkkkk
C:\Documents and Settings\Administrator\桌面\ln\temp\bat>echo kkkkkkk
kkkkkkk
最后一行是結(jié)果,但是在結(jié)果之前,還有兩句,set value=kkkkkkk 和 echo kkkkkkk,但是在語句中,我們并沒有寫echo kkkkkkk的語句,這表明至少在執(zhí)行到echo %value% 這句時,對變量進行的值的替換。這就是變量的擴展。

那么什么是變量的延遲擴展呢?

如果大家知道C++的“靜態(tài)變量”概念,那就應(yīng)該知道,c++編譯的時候,會對靜態(tài)變量進行值的替換,但這個替換是基于靜態(tài)的前提下,那么進行變量擴展時,也是這樣,但如果出現(xiàn)動態(tài)的情況會怎樣?在cmd執(zhí)行中,發(fā)生動態(tài)的一種情況是在 for語句中進行變量賦值,例如:
例二:

@echo off 
for /l %%i in (1,1,3) do ( 
set k=%%i ::對k進行循環(huán)賦值 
echo %k% %%i 
) 


執(zhí)行這樣的腳本,出現(xiàn)如下結(jié)果:
_1
_2
_3
結(jié)果出現(xiàn)這三句話。_ 表示空格
注:k沒有賦初值,則替換為空。

例三:

@echo off 
set k=yyy 
for /l %%i in (1,1,3) do ( 
set k= %%i ::對k進行循環(huán)賦值 
echo %k% %%i 
)


結(jié)果:
yyy 1
yyy 2
yyy 3
注:k有賦初值,則都替換為yyy。、
實例四:

@echo off 
setlocal enabledelayedexpansion 
set k= 3 
for /l %%i in (1,1,3) do ( 
set k=%%i 
echo %k% %%i 
)

結(jié)果:
3 1
3 2
3 3
這里已經(jīng)是用了延遲變量,為什么還會出現(xiàn)這種情況呢?再看實例五:
實例五:

@echo off 
setlocal enabledelayedexpansion 
set k= 3 
for /l %%i in (1,1,3) do ( 
set k=%%i 
echo !k! %%i 
)

結(jié)果:
1 1
2 2
3 3
原來在延遲變量擴展中,要使用!來引用變量。

您可能感興趣的文章:
  • cmd SETLOCAL使用介紹
  • dos 環(huán)境變量延遲擴展enabledelayedexpansion詳解

標簽:湘西 陽泉 小程序 吳忠 香港 宜賓 烏魯木齊 巴中

巨人網(wǎng)絡(luò)通訊聲明:本文標題《批處理中setlocal enabledelayedexpansion的作用詳細整理》,本文關(guān)鍵詞  批處理,中,setlocal,enabledelayedexpansion,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《批處理中setlocal enabledelayedexpansion的作用詳細整理》相關(guān)的同類信息!
  • 本頁收集關(guān)于批處理中setlocal enabledelayedexpansion的作用詳細整理的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    免费亚洲电影在线| 色综合久久久久综合99| 欧美激情综合五月色丁香| 91国偷自产一区二区三区观看 | 精品在线观看视频| 一区二区三区影院| 日韩视频国产视频| 91网站在线播放| 韩国女主播一区二区三区| 亚洲午夜激情av| 91成人免费在线视频| 欧美丰满美乳xxx高潮www| 成人黄色网址在线观看| 久久99久久99| 91亚洲精品乱码久久久久久蜜桃| 欧美日韩激情一区| 欧美精品99久久久**| 亚洲一区二区成人在线观看| 欧美剧情电影在线观看完整版免费励志电影 | 欧美三级三级三级| 国产一区二区三区高清播放| 欧美一区二区三区在线电影| 91在线高清观看| 欧美一区二区三区免费| 中文字幕在线一区| 欧美午夜精品免费| 六月丁香婷婷久久| 蜜臀精品一区二区三区在线观看 | 欧美日韩久久一区| 国产欧美日韩在线| 欧美国产禁国产网站cc| 午夜成人免费电影| 日日摸夜夜添夜夜添亚洲女人| 波多野结衣欧美| 成人av网址在线观看| 91精品国产福利| 亚洲男人的天堂在线aⅴ视频| 国产精品视频yy9299一区| 国产精品系列在线| a4yy欧美一区二区三区| 欧美tickling挠脚心丨vk| 欧美综合色免费| 91精品国产一区二区| 亚洲欧美一区二区久久| 国产ts人妖一区二区| 成人免费毛片a| 91美女精品福利| 日本一区二区三区电影| 九九在线精品视频| 欧美一区二区三区小说| 一区二区三区在线视频观看58| 国产不卡在线播放| 日韩精品一区二| 国产日韩欧美一区二区三区综合 | 欧美一级免费大片| 亚洲一区二区三区四区的| av网站免费线看精品| 久久久精品黄色| 国产精品久久久一本精品 | 99这里只有精品| 欧美国产成人在线| 韩国av一区二区三区在线观看| 欧美肥大bbwbbw高潮| 亚洲一区二区三区视频在线| 国产精品免费久久久久| 日韩电影在线一区二区三区| 国产乱码精品一区二区三区av| www.亚洲人| 欧美激情一区二区三区蜜桃视频| 韩日欧美一区二区三区| 精品国产一区二区三区久久久蜜月| 国产精品久久久久永久免费观看| 国产精品一区久久久久| 久久久久国产精品厨房| 国产综合一区二区| 久久九九久精品国产免费直播| 亚洲午夜免费视频| 欧美色图第一页| 亚洲成人免费看| 成人综合在线视频| 欧美国产1区2区| 成人一区在线观看| 国产精品不卡一区| 色婷婷av一区二区三区软件 | 日本免费在线视频不卡一不卡二| 欧美区一区二区三区| 日韩国产成人精品| 不卡av在线网| 亚洲欧美二区三区| 国内成人免费视频| 国产日韩欧美在线一区| 97精品国产露脸对白| 精品国产欧美一区二区| 国产精品456| 中文字幕在线不卡| 亚洲免费av观看| 国产精品正在播放| 综合色中文字幕| 亚洲成av人片一区二区梦乃| 欧美丰满高潮xxxx喷水动漫| 久久99精品视频| 中文字幕精品—区二区四季| 色老汉一区二区三区| 亚洲午夜久久久久久久久电影院| 欧美人与禽zozo性伦| 久久av资源网| 中文字幕一区av| 欧美经典一区二区| 石原莉奈在线亚洲二区| 精品欧美一区二区久久 | 国产农村妇女毛片精品久久麻豆 | 欧美视频精品在线观看| 日韩av电影免费观看高清完整版在线观看 | 17c精品麻豆一区二区免费| 色国产综合视频| 美女尤物国产一区| 国产欧美日韩综合| 国产精品嫩草影院av蜜臀| 国产不卡在线视频| 三级久久三级久久久| 国产婷婷色一区二区三区在线| 一本大道av一区二区在线播放| 免费在线看成人av| 亚洲欧洲日韩一区二区三区| 欧美精品色一区二区三区| 国产白丝网站精品污在线入口| 亚洲一区二区三区四区五区中文 | 国产精品自拍网站| 亚洲制服丝袜一区| 久久精品亚洲乱码伦伦中文| 欧美三级电影网| 国产**成人网毛片九色| 午夜精品免费在线| 国产精品女人毛片| 6080亚洲精品一区二区| 亚欧色一区w666天堂| 国产欧美日韩在线看| 国产激情视频一区二区三区欧美| 久久中文娱乐网| 大尺度一区二区| 日本少妇一区二区| 亚洲日本va在线观看| 2024国产精品| 69av一区二区三区| 91黄色免费网站| 成人国产电影网| 欧美日韩精品一区二区三区蜜桃| 美女mm1313爽爽久久久蜜臀| 亚洲色图欧美在线| 国产亚洲综合在线| 日韩欧美一区二区久久婷婷| 91福利视频久久久久| 国产不卡在线一区| 韩国av一区二区| 日本不卡一二三| 亚洲午夜一二三区视频| 国产精品久久久久影院亚瑟| 精品国产一区二区三区四区四| 欧美绝品在线观看成人午夜影视| 色8久久人人97超碰香蕉987| 不卡视频一二三四| 国产精品一色哟哟哟| 精品一区二区三区在线视频| 天堂资源在线中文精品| 亚洲一区在线视频观看| 亚洲人成网站影音先锋播放| 中文字幕av资源一区| 久久亚洲一区二区三区明星换脸| 国产精品久久久爽爽爽麻豆色哟哟 | 久久精品国产一区二区| 性做久久久久久免费观看欧美| 曰韩精品一区二区| 91精品国产一区二区三区香蕉| 欧美视频在线一区二区三区| 91在线国产福利| 91香蕉视频污在线| 国产精品女主播av| 91精品国产综合久久国产大片| 欧美日韩你懂的| 欧美日韩视频在线第一区| 欧美性一级生活| 欧美日韩中文另类| 欧美日韩一区二区在线观看| 欧美视频一区二区三区在线观看| 色综合激情久久| 在线观看成人小视频| 欧美影院一区二区三区| 欧美日韩一区视频| 国产suv精品一区二区883| 高清在线不卡av| 成人精品亚洲人成在线| 波多野结衣欧美| 色老综合老女人久久久| 欧美日韩成人在线| 91麻豆精品国产自产在线| 日韩美一区二区三区| 精品国产凹凸成av人网站| 国产视频一区二区三区在线观看| 国产亲近乱来精品视频| 中文字幕一区二区三区四区|