在bat檔案中想實現對變數的賦值和輸出,發現設定的變數在後續使用中為空,**如下:
@echo off
for %%i in (*) do (
set var=%%i
echo %var%
)
理論上,輸出結果應為當前命令所在目錄裡的所有檔名,可實際的輸出結果 卻為
bat檔案中批處理設定變數延遲的問題。
這涉及到批處理命令中的變數延遲擴充套件問題,詳細請參考:
@echo off
for %%i in (*) do (
setlocal enabledelayedexpansion//設定變數延遲擴充套件
set var=%%i
echo !var!//使用變數
)
輸出結果為:
bat檔案中批處理設定變數延遲的問題
批處理中處理變數延遲
rem 比較兩種異同 體會變數延遲 echo off set a 4 set a 5 echo a pause setlocal enabledelayedexpansion set c 4 set c 5 echo c pause批處理執行機制 批處理讀取命令按行讀取,在處理之前要完成必要的預處理...
bat 批處理變數
echo off setlocal enabledelayedexpansion d rem 更改d bat為當前目錄 cd d bat rem 變數使用 set a a 1 2 echo a echo cd echo date set p var 請輸入變數的值 echo var rem find...
批處理命令 bat 設定環境變數
cmake是構建c和c 工程的強力工具,但是有時候會依賴一些環境變數的正確設定,雖然也可以在cmakelists.txt進行設定,但是這樣會使得cmakelists.txt檔案顯得臃腫,但是手動設定環境變數又顯得很痛苦,特別是如果換電腦的話,就會更加痛苦了。於是就想到了用批處理檔案進行環境變數的設定...