我是一个 unix 人,但我必须在 windows 中编写一个系统,并且我正在尝试编写一个脚本来移动一些文件。我试图让父批处理文件调用一个子批处理文件,其中包含:
set REPORTFILE=c:\report.txt
然后我希望父母能够使用 %REPORTFILE% 变量。显然 CALL 命令创建了一个新的上下文。在 unix 中,您只需获取脚本,这在 windows 中可能吗?
我是一个 unix 人,但我必须在 windows 中编写一个系统,并且我正在尝试编写一个脚本来移动一些文件。我试图让父批处理文件调用一个子批处理文件,其中包含:
set REPORTFILE=c:\report.txt
然后我希望父母能够使用 %REPORTFILE% 变量。显然 CALL 命令创建了一个新的上下文。在 unix 中,您只需获取脚本,这在 windows 中可能吗?
如果我理解...这似乎在 Vista 中对我有用:
调用者.bat
echo this is the caller
echo initial value is: %reportfile%
call setter.bat
echo value is: %reportfile%
设置器.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.batC:\temp>echo 这是值设置器
this is the value setter
C:\temp>set reportfile=c:\report.txtC:\temp>echo 值为: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