Board logo

标题: 批处理文件的参数变量有作用域吗? [打印本页]

作者: 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后边多了一个空格!!!!