中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-05 21:25
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 批处理文件的参数变量有作用域吗? 查看 887 回复 5
楼 主 批处理文件的参数变量有作用域吗? 发表于 2007-09-28 19:37 ·  中国 江苏 无锡 联通
初级用户
★★
积分 128
发帖 56
注册 2007-09-26 15:37
18年会员
UID 98321
性别 男
来自 江苏 无锡
状态 离线
问题如标题,原因是我的一个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 发表于 2007-09-28 19:46 ·  中国 江苏 无锡 联通
初级用户
★★
积分 128
发帖 56
注册 2007-09-26 15:37
18年会员
UID 98321
性别 男
来自 江苏 无锡
状态 离线
各位高手帮帮我呀,我正在做测试,有写地方要用到批处理技术,可惜我对这方面很不了解,所以我的问题都是很简单的,大家别笑话我,急呀
等待中...............
3 发表于 2007-09-28 19:50 ·  中国 四川 南充 营山县 电信
超级版主
★★★★
我爱DOS
积分 5,310
发帖 2,044
注册 2005-09-26 12:00
20年会员
UID 42843
性别 男
来自 四川南充
状态 离线
4 发表于 2007-09-28 19:52 ·  中国 江苏 无锡 联通
初级用户
★★
积分 128
发帖 56
注册 2007-09-26 15:37
18年会员
UID 98321
性别 男
来自 江苏 无锡
状态 离线
不会啊,我也做了几中检查
我新建个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 发表于 2007-09-28 19:59 ·  中国 江苏 无锡 联通
初级用户
★★
积分 128
发帖 56
注册 2007-09-26 15:37
18年会员
UID 98321
性别 男
来自 江苏 无锡
状态 离线
没有人能帮我了吗?:(
6 发表于 2007-09-28 20:25 ·  中国 江苏 无锡 联通
初级用户
★★
积分 128
发帖 56
注册 2007-09-26 15:37
18年会员
UID 98321
性别 男
来自 江苏 无锡
状态 离线
真不好意思,我解决了!
真是太恐怖了
原因是写 SET pth=%CD%\test\a.bak就没问题
写成 SET pth =%CD%\test\a.bak就有问题!!!
因为pth后边多了一个空格!!!!
论坛跳转: