我是一个cmd脚本,现在看起来像这样:
for /f "delims=" %%a in ('sqlplus user/pass@OMP1 @CheckRowCount.SQL') do set rowcount=%%a
if %ROWCOUNT% GTR 0 (
c:\Autobatch\Spotfire.Dxp.Automation.ClientJobSender.exe http://server/spotfireautomation/JobExecutor.asmx c:\AutoBatch\backup\Trigger_Test.xml
)EXIT
我知道
'sqlplus user/pass@omp1 @checkrowcount.sql'
有效,因为当我单独运行时,我确实在sqlplus中获得了一个rowcount。
c:\Autobatch\Spotfire.Dxp.Automation.ClientJobSender.exe http://server/spotfireautomation/JobExecutor.asmx c:\AutoBatch\backup\Trigger_Test.xml
在CMD中单独运行时也可以正常工作。
我想要做的是,如果sqlplus命令返回的行数为> 0,运行另一个命令。否则退出...似乎无法将它们串在一起工作。
答案 0 :(得分:0)
添加代码段中的两个顶行,查看%rowcount%的设置。
echo "%ROWCOUNT%"
pause
if %ROWCOUNT% GTR 0 (
您可能会发现您的sqlplus命令在结尾处返回一个空行,而rowcount被设置为空。在那种情况下,这应该工作:
for /f "delims=" %%a in ('sqlplus user/pass@OMP1 @CheckRowCount.SQL ^|findstr "[0-9]" ') do set rowcount=%%a