婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

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

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

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

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

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

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

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

舉個例子說明一下:

例2:

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

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

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

結果:12345

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

batman的說明

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

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

setlocal enabledelayedexpansion 是什么意思?

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

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

set value=kkkkkkk 
echo %value% 

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

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

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

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


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

例三:

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


結果:
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 
)

結果:
3 1
3 2
3 3
這里已經是用了延遲變量,為什么還會出現這種情況呢?再看實例五:
實例五:

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

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

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

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

巨人網絡通訊聲明:本文標題《批處理中setlocal enabledelayedexpansion的作用詳細整理》,本文關鍵詞  批處理,中,setlocal,enabledelayedexpansion,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《批處理中setlocal enabledelayedexpansion的作用詳細整理》相關的同類信息!
  • 本頁收集關于批處理中setlocal enabledelayedexpansion的作用詳細整理的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美亚洲禁片免费| 欧美日韩中文国产| 欧美日韩国产成人在线免费| 久久久久亚洲蜜桃| 7878成人国产在线观看| 91网站在线播放| 久久国产精品99久久人人澡| 亚洲午夜精品久久久久久久久| 99久久er热在这里只有精品15| 亚洲欧美日韩中文字幕一区二区三区 | eeuss影院一区二区三区| 亚洲老司机在线| 综合激情成人伊人| 制服丝袜成人动漫| 欧美欧美欧美欧美| 九色综合国产一区二区三区| 免费成人你懂的| 亚洲精品v日韩精品| 日韩欧美国产系列| 欧美变态tickling挠脚心| 欧美日韩一本到| 欧美精品色综合| 日本高清不卡在线观看| 欧美人狂配大交3d怪物一区| 久久综合久久综合亚洲| 欧美不卡一二三| 欧美在线三级电影| 欧美美女直播网站| 欧美成人a∨高清免费观看| 91免费国产在线| 国产美女精品人人做人人爽| 成人免费av在线| 亚洲18女电影在线观看| 亚洲综合在线电影| 黑人巨大精品欧美黑白配亚洲| 久久精品国产亚洲5555| 国产一区福利在线| 欧美最猛性xxxxx直播| 8x福利精品第一导航| 欧美一级片在线| 在线观看av一区| 欧美日韩成人一区| 国产性色一区二区| 亚洲精品免费看| 国产福利精品导航| 国产一区二区三区黄视频| 成人免费看黄yyy456| 欧美日韩国产一级片| 欧美亚洲综合色| 欧美精品一区二区三区蜜桃视频| 亚洲福利电影网| 菠萝蜜视频在线观看一区| 色婷婷av一区二区三区软件 | 成人性视频免费网站| 精品一区二区在线免费观看| 色婷婷国产精品| 亚洲国产精品嫩草影院| av福利精品导航| 日韩一级大片在线观看| 亚洲大片免费看| 99精品偷自拍| 中文子幕无线码一区tr| 日韩在线一区二区三区| 在线观看av不卡| 亚洲精品伦理在线| 成人激情免费网站| 91精品国产综合久久福利软件| 亚洲一级在线观看| 91精品婷婷国产综合久久竹菊| 大陆成人av片| 中文字幕日韩欧美一区二区三区| www.日本不卡| 亚洲一线二线三线久久久| 欧美久久一二三四区| 亚洲成av人片在线观看无码| 欧美日韩情趣电影| 日韩精品一二三| 国产亚洲自拍一区| 国产精品亚洲午夜一区二区三区 | 国产精品资源在线看| 国产色产综合产在线视频| 性做久久久久久| 日韩网站在线看片你懂的| 成人综合在线观看| 最新日韩在线视频| 91在线精品秘密一区二区| 国产高清不卡一区| 蜜桃视频一区二区| 亚洲欧美日韩综合aⅴ视频| 欧美一区二区三区免费观看视频| 九九热在线视频观看这里只有精品| 国产精品女上位| 欧美精品久久久久久久多人混战| 国产成人午夜99999| 亚洲欧美国产77777| 日韩欧美久久久| 日韩美一区二区三区| 在线免费观看日本欧美| 欧美亚洲尤物久久| 国产精品白丝av| 国产一区二区91| 91社区在线播放| 成人国产电影网| 91论坛在线播放| 欧美高清一级片在线| 一本色道久久综合亚洲aⅴ蜜桃| 丝袜美腿亚洲一区| 亚洲精品视频在线观看网站| 久久视频一区二区| 欧美久久久久久蜜桃| 久久这里只有精品6| 国产精品欧美极品| 日韩精品一级中文字幕精品视频免费观看 | 亚洲精品一线二线三线| 欧美一区二区三区免费在线看| 一本一道久久a久久精品综合蜜臀| 国产美女精品一区二区三区| 日本va欧美va欧美va精品| 午夜免费欧美电影| 日本欧美一区二区在线观看| 国产在线播放一区三区四| 亚洲免费观看高清完整版在线 | 久久亚洲一区二区三区四区| 4438成人网| 欧美一区二区三区白人| 精品久久一区二区三区| 欧美成人精品福利| 国产精品福利一区| 免费欧美日韩国产三级电影| 精品一区二区在线观看| 在线视频欧美区| 亚洲视频图片小说| 蜜桃视频免费观看一区| 国产综合色产在线精品| 色综合天天综合色综合av | 国产伦精一区二区三区| 欧美日韩国产首页| 欧美激情综合网| 亚洲成人av电影在线| 99精品国产91久久久久久| 欧美精品一区二区三区四区| 久久久久久久综合日本| 亚洲视频香蕉人妖| 国产综合色在线| 久久―日本道色综合久久| 亚洲国产精品一区二区www | 国产日韩精品一区| 国产精品二三区| 成人午夜精品在线| 国产精品乱码妇女bbbb| 欧美国产精品一区二区| 国产一区二区三区综合| 色婷婷久久一区二区三区麻豆| 国产午夜精品理论片a级大结局| 日韩精品久久久久久| 欧美色综合网站| 日韩专区在线视频| 日韩欧美自拍偷拍| 国产麻豆成人精品| 久久久www成人免费毛片麻豆 | 亚洲男人的天堂在线aⅴ视频| 成人黄动漫网站免费app| 亚洲欧美日韩一区二区 | 91精品视频网| 美女一区二区三区| 欧美人牲a欧美精品| 亚洲123区在线观看| 欧美久久久久久久久久| 中文字幕一区二区在线观看| 久久99久久99精品免视看婷婷| 国产日韩av一区二区| 国产一区高清在线| 亚洲欧洲另类国产综合| 欧美在线色视频| 99精品久久只有精品| 视频在线观看91| 欧美二区在线观看| 久久爱www久久做| 日韩毛片高清在线播放| 日韩欧美中文字幕一区| 国内外成人在线| 青青草国产精品97视觉盛宴| 亚洲日本青草视频在线怡红院| 日韩一区二区不卡| 色天使色偷偷av一区二区| 另类欧美日韩国产在线| 亚洲已满18点击进入久久| 精品1区2区在线观看| 欧美日韩国产在线播放网站| 成人国产免费视频| 国产成人精品午夜视频免费| 成人精品高清在线| 日韩精品免费视频人成| 亚洲伦理在线精品| 亚洲最新在线观看| 91在线免费视频观看| 一本色道久久综合亚洲91| 一道本成人在线| 波多野结衣在线一区| 亚洲视频中文字幕|