if语句批次此时是意外的

时间:2016-11-03 14:39:23

标签: batch-file

我有一个包含此代码的批处理:

set /p carga= ¿Carga inicial o carga diaria?

if "%carga%"=="c" (

    sqlcmd -Q "exec dbo.SP_OFB_INF_PSN @VALOR = 1, @FECHA=''" -S (local) -d bd_ofb -o OFB_INF_PSN_2.txt

)

但我有这个错误

  

-d此时出乎意料

如果我离开IF的外面,则没有错误代码

sqlcmd -Q "exec dbo.SP_OFB_INF_PSN @VALOR = 1, @FECHA=''" -S (local) -d bd_ofb -o OFB_INF_PSN_2.txt

1 个答案:

答案 0 :(得分:0)

您可以像Stephan提议的那样转义结束括号(使用^)),也可以使用延迟扩展并将语句设置为变量:

setlocal enableDelayedExpansion

set /p carga= ¿Carga inicial o carga diaria?

set "statement=sqlcmd -Q "exec dbo.SP_OFB_INF_PSN @VALOR = 1, @FECHA=''" -S (local) -d bd_ofb -o OFB_INF_PSN_2.txt"

if "%carga%"=="c" (
   !statement!
)