理解できれば...これはVistaでうまくいくようです:
caller.bat
echo this is the caller
echo initial value is: %reportfile%
call setter.bat
echo value is: %reportfile%
setter.bat
echo this is the value setter
set reportfile=c:\report.txt
C:\temp>発信者
C:\temp>echo これは呼び出し元です
this is the caller
C:\temp>echo 初期値は次のとおりです:
initial value is:
C:\temp>call setter.bat
C:\temp>echo これは値セッターです
this is the value setter
C:\temp>set reportfile=c:\report.txt
C:\temp>エコー値: c:\report.txt
value is: c:\report.txt
括弧の代わりに goto を使用するように更新されました:
if not exist file.txt goto doit
goto notfound
:doit
echo this is the caller
echo initial value is: %reportfile%
call setter.bat
echo value is: %reportfile%
goto end
:notfound
echo file found
:end