0

我现在看起来像这样的 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 中得到了一个行数。

c:\Autobatch\Spotfire.Dxp.Automation.ClientJobSender.exe     http://server/spotfireautomation/JobExecutor.asmx c:\AutoBatch\backup\Trigger_Test.xml

在 CMD 中单独运行时也可以正常工作。

我想要做的是,如果 sqlplus 命令返回 > 0 的行数,则运行另一个命令。否则退出...似乎无法将它们串在一起工作。

4

1 回答 1

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
于 2013-04-20T05:37:26.313 回答