Tsql 批处理文件-缺少运算符
这是我的第一篇帖子,如果我做错了什么,请放轻松:-) 有人能告诉我为什么我找不到接线员吗Tsql 批处理文件-缺少运算符,tsql,batch-file,operators,Tsql,Batch File,Operators,这是我的第一篇帖子,如果我做错了什么,请放轻松:-) 有人能告诉我为什么我找不到接线员吗 @echo off mode con: cols=100 lines=50 TITLE Availability check set /a go = 0 echo go start = %go% pause :loop set /a go = sqlcmd -S SERVERNAME -E -W -i "FILEPATH\FILENAME.sql" -h-1 -m 1 echo go SQL =
@echo off
mode con: cols=100 lines=50
TITLE Availability check
set /a go = 0
echo go start = %go%
pause
:loop
set /a go = sqlcmd -S SERVERNAME -E -W -i "FILEPATH\FILENAME.sql" -h-1 -m 1
echo go SQL = %go%
pause
echo testing go
pause
if %go% == 1 goto next
TIMEOUT /T 300
:next
echo(yay
pause
goto loop
这些消息(暂停)只是为了让我能够隔离发生错误的行……我认为这与sqlcmd有关。我正在尝试从SQL表(应用的条件)返回1或0,这将触发另一个服务器/应用程序上的事件(代码中未显示)。如果为0,则应在5分钟后重试
任何帮助将不胜感激,因为我是新使用批处理文件
谢谢
set/A
用于算术运算,因此不能将字符串sqlcmd-S SERVERNAME-E-W-i“FILEPATH\FILENAME.sql”-h-1-m 1
分配给变量,除非删除/A
选项并确保=
-签名周围没有空格,否则批处理文件不会像BASH
那样工作。不能将命令的输出直接指定给变量。如果需要捕获命令的输出,有两个选项。1) 将输出写入文件,并使用FOR/F
命令读取文件。2) 您可以使用FOR/F
命令直接读取SQL
命令的输出,方法是将其放入FOR
命令的in
子句中。谢谢,我现在将其更改为sqlcmd-S SERVERNAME-E-W-I“FILEPATH\FILENAME.SQL”-h-1-m 1-o rpresult.txt set/p go=set/A
用于算术运算,因此不能将字符串sqlcmd-S SERVERNAME-E-W-i“FILEPATH\FILENAME.sql”-h-1-m 1
分配给变量,除非删除/A
选项并确保=
-签名周围没有空格,否则批处理文件不会像BASH
那样工作。不能将命令的输出直接指定给变量。如果需要捕获命令的输出,有两个选项。1) 将输出写入文件,并使用FOR/F
命令读取文件。2) 您可以使用FOR/F
命令直接读取SQL
命令的输出,方法是将其放入FOR
命令的in
子句中。谢谢,我现在将其更改为sqlcmd-S SERVERNAME-E-W-I“FILEPATH\FILENAME.SQL”-h-1-m 1-o rpresult.txt set/p go=