我正在寫一個批處理文件來從文件中讀取一個路徑並將其設置爲環境變量。該批處理文件將被許多其他批處理文件使用(調用)以獲取變量。在編寫批處理文件時,我遇到了一個問題,因此我使用了SETLOCAL ENABLEDELAYEDEXPANSION
來解決這個問題。但是,使用它的其他批處理文件無法獲取變量集。批處理腳本使setlocal變量訪問其他批處理文件
下面是批處理腳本,
getVariables.bat
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
if EXIST "test.dat" (
for /F "tokens=*" %%I in (test.dat) do set %%I
echo setting JAVA_HOME to :: !JAVA_HOME!
echo setting JAVA to !JAVA!
)
在我的另一個批處理文件我使用上述batach文件,以獲取變量設置
another.bat
call getVariables.dat
echo "%JAVA%"
但回聲打印「」,在那裏沒有設置。如果這是因爲setlocal
,我該如何克服這個問題?我還需要setlocal
來延遲擴展並在執行時發生。這個問題的任何解決方案?請幫助我。
這是我的問題。我習慣於在我的所有腳本中使用SETLOCAL。最後,我發現了一個引起問題的例外。 – djangofan 2013-06-05 21:28:07