bat檔案中批處理設定變數延遲的問題

2021-09-11 18:41:34 字數 605 閱讀 5312

在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檔案顯得臃腫,但是手動設定環境變數又顯得很痛苦,特別是如果換電腦的話,就會更加痛苦了。於是就想到了用批處理檔案進行環境變數的設定...