通俗彻底解读批处理的延迟变量
生活随笔
收集整理的這篇文章主要介紹了
通俗彻底解读批处理的延迟变量
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
先說環境變量
一個批處理可以看成是一個程序,它的環境變量就是自己的全局變量。操作系統可以看成是一個大程序,它的環境變量同樣也是全局變量,只不過為了和程序的環境變量區別,就叫做全局環境變量了,既然為了區別,那么叫系統環境變量豈不是更好。
再說延遲變量
腳本語言需要解釋器解釋執行。批處理在解釋執行時會以語句為單位讀取代碼。假如前面有一個變量a=1,這句當中的所有讀取a的運算中,比如輸出a,a都會先被替換成1,再執行。
還是上代碼吧:
@echo off set a=1 set a=2 & echo %a% echo %a% pause輸出:
說明了:
1. 執行器讀取一條語句后會進行變量值替換。如果讀取語句的前面還有其他改變這個變量的命令,就會導致讀不到最新的值。
2. 寫成一行和寫成兩行是有區別的。
注意:
因為for和if作為一個語句,后面可以跟許多命令,不管跟多少命令,它還是一條命令。
延遲變量
光看名字不能顧名思義。那么就換一個說法來描述:
開啟延遲變量就是讀取變量最新值。
? ? ?記住這句話就行了,簡單明了。它和c/c++中的volatile作用相同。
上代碼
setlocal EnableDelayedExpansion set a=1 set a=2 & echo !a! echo %a% pause 輸出
注意,設置延遲變量后,變量讀取時要用 !變量! 的形式,不用 %變量% ,不然還是讀不到最新的值。
總結
以上是生活随笔為你收集整理的通俗彻底解读批处理的延迟变量的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 拼接符 防注入正则校验_Apache K
- 下一篇: 关联规则挖掘算法_基于Apriori关联