标题: 批处理文件的参数变量有作用域吗?
[打印本页]
作者: yyf0346
时间: 2007-9-28 19:37
标题: 批处理文件的参数变量有作用域吗?
问题如标题,原因是我的一个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%值取得是空的,为什么啊?
作者: yyf0346
时间: 2007-9-28 19:46
各位高手帮帮我呀,我正在做测试,有写地方要用到批处理技术,可惜我对这方面很不了解,所以我的问题都是很简单的,大家别笑话我,急呀
等待中...............
作者: 不得不爱
时间: 2007-9-28 19:50
你是osql命令错误吧
作者: yyf0346
时间: 2007-9-28 19:52
不会啊,我也做了几中检查
我新建个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
运行起来就没有问题了啊,这是为什么啊?
作者: yyf0346
时间: 2007-9-28 19:59
没有人能帮我了吗?:(
作者: yyf0346
时间: 2007-9-28 20:25
真不好意思,我解决了!
真是太恐怖了
原因是写 SET pth=%CD%\test\a.bak就没问题
写成 SET pth =%CD%\test\a.bak就有问题!!!
因为pth后边多了一个空格!!!!