中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-05 14:11
48,038 主题排行 / 350,123 发帖 / 今日 1 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » 急!FOR 循环调用call语句疑问!
可打印版本  789 / 0
第1楼 cosmos 发表于 2007-08-15 16:09
新手上路 发帖 3 积分 10
急!FOR 循环调用call语句疑问!
:script
for %%f in (%root%\*.sql) do (
rem if "%result%"=="fail" goto :EOF
call :sqlplus %%f %logon_owner% %logon_name%
)

:sqlplus
setlocal
if not exist %1 call :error "%1 does not exist." & goto :EOF

echo Execute %1
echo exit success | sqlplus -s %2 @%1 %3
rem if errorlevel 1 call :error "Error occurs." & endlocal & set ret=fail
if errorlevel 1 endlocal & set result=fail
echo %result%
goto :EOF

疑问:
为什么对于变量 %result%始终为空呢?

而且,如果去掉了循环,就可以找到%result%正确的值呢?

最后:
我这个的目的就是执行每一个sql文件,如果有错误就立即退出。
如果各位有更好的办法,请告诉我。
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023