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=