中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-05 22:16
48,039 主题排行 / 350,124 发帖 / 今日 2 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » 批处理文件的参数变量有作用域吗?
可打印版本  888 / 5
第1楼 yyf0346 发表于 2007-09-28 19:37
初级用户 发帖 56 积分 128 来自 江苏 无锡
批处理文件的参数变量有作用域吗?
问题如标题,原因是我的一个bat文件里有几个地方都调用了osql
..............
SET pat=%CD%test\HXGL.bak
@echo isql create job start>>log.txt
osql -E -S %Userver% -i"处理文件\sql2005\a.sql" -o"log.txt"
@echo isql create job end>>log.txt
.................
@echo isql create job start>>log.txt
osql -E -S %Userver% -i"restore db form disk =N'%pat%' With FILE = 1, NOUNLOAD, REPLACE, STATS = 10"" >log.txt
@echo isql create job end>>log.txt
..................................
@echo isql create job start>>log.txt
osql -E -S %Userver% -i"处理文件\sql2005\b.sql" -o"log.txt"
@echo isql create job end>>log.txt

我运行的时候中间的 osql里面的%pat%值取得是空的,为什么啊?
第2楼 yyf0346 发表于 2007-09-28 19:46
初级用户 发帖 56 积分 128 来自 江苏 无锡
各位高手帮帮我呀,我正在做测试,有写地方要用到批处理技术,可惜我对这方面很不了解,所以我的问题都是很简单的,大家别笑话我,急呀
等待中...............
第3楼 不得不爱 发表于 2007-09-28 19:50
超级版主 发帖 2,044 积分 5,310 来自 四川南充
你是osql命令错误吧
第4楼 yyf0346 发表于 2007-09-28 19:52
初级用户 发帖 56 积分 128 来自 江苏 无锡
不会啊,我也做了几中检查
我新建个bat文件,内容如下:
SET pat=%CD%test\HXGL.bak
@echo isql create job start>>log.txt
osql -E -S %Userver% -i"restore db form disk =N'%pat%' With FILE = 1, NOUNLOAD, REPLACE, STATS = 10"" >log.txt
@echo isql create job end>>log.txt
运行起来就没有问题了啊,这是为什么啊?
第5楼 yyf0346 发表于 2007-09-28 19:59
初级用户 发帖 56 积分 128 来自 江苏 无锡
没有人能帮我了吗?:(
第6楼 yyf0346 发表于 2007-09-28 20:25
初级用户 发帖 56 积分 128 来自 江苏 无锡
真不好意思,我解决了!
真是太恐怖了
原因是写 SET pth=%CD%\test\a.bak就没问题
写成 SET pth =%CD%\test\a.bak就有问题!!!
因为pth后边多了一个空格!!!!
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023