私はSQLクエリファイルを実行し、結果をプリンタにコピーする非常に単純なバッチファイルを持っています。問題は、クエリの結果が0行であっても印刷されることです。データがある場合にはどうすれば印刷できますか?バッチファイルの条件付き印刷
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
[OK]を、これは私が今持っているものです。
cd c:\stock
sqlcmd -i testquery.sql -S localhost -U User -P password -o testresults.txt
@find /c /i "0 rows" "C:\stock\testresults.txt" > NUL
if %ERRORLEVEL% EQU 1 (
pause
) else (
copy c:\stock\testresults.txt \\printserver\share)
pause
sqlcmd -i ems_update.sql -S localhost -U User -P password
私は今、実行するためのコピーコマンドを取得することはできません。私は何が欠けているのですか?
if [ ! -s ./testresults.txt ] ; then
rm ./testresults.txt
# or do something else
else
copy testresults.txt \\printserver\share
fi
バッチ 'if'比較は文字列値のみをチェックするので、' if'文は時間の100%になります。バッチの変数も '%this%'のように呼び出されます。 – SomethingDark
'set var_name = type contents.txt'は、ファイルの内容を文字列にします。 – MotKohn
いいえ、コマンドの出力を処理するには 'for'ループが必要です。 'for/f" delims = "%contents %% A in( 'type contents.txt')do set var_name = %% A'は変数をファイルの内容に設定します。 – SomethingDark