批处理文件中的条件打印

时间:2016-08-16 17:25:46

标签: sql-server batch-file

我有一个非常简单的批处理文件,它运行SQL查询文件并将结果复制到打印机。问题是即使查询结果为0行也会打印。如果有数据,我怎么才能打印?

\t\

好的,这就是我现在所拥有的:

cd stock
sqlcmd -i testquery.sql -S localhost -U User -P password -o testresults.txt
copy testresults.txt \\printserver\share
sqlcmd -i ems_update.sql -S localhost -U User -P password 
del c:\stock\testresults.txt
exit

我无法让copy命令立即运行。我错过了什么? 感谢

2 个答案:

答案 0 :(得分:0)

只是一个想法 - 你可以检查文件的大小是否为0.在Bash中它将是这样的:

<?php
$keys = ['matchA','matchB','matchC','matchD','matchE'];

foreach ($keys as $key)
  (strpos($key, 'matchA') !== false || strpos($key, 'matchB') !== false || strpos($key, 'matchC') !== false || strpos($key, 'matchD') !== false || strpos($key, 'matchE') !== false);

echo 'Peak Memory: '.memory_get_peak_usage();

答案 1 :(得分:0)

取一个你知道有0个数据的文件。
for /f "delims=" %%A in ('type nodata.txt') do set nodata=%%A然后
for /f "delims=" %%A in ('type testresults.txt') do set test_result=%%A
然后
if not %nodata%==%test_result% copy testresults.txt \printserver\share
只有在没有生成相同数据文件的情况下才会生效,例如没有时间戳。

如果find在文件中找不到短语,则使用%errorlevel%==1,如果没有,则返回0