私はオンデマンドでSQLコマンドを実行するために.batファイルを実行する必要があります。if
はfor
にネストされ、if
は真になるまで繰り返す必要があります。.batファイルの単純なロジック?
私が持っているもの:
私が移動した場合には、ループを打つ@echo off
cd "%UserProfile%\Desktop\Scripting\"
FOR /f "delims=" %%a in ('type queue.txt') DO (
:loop
IF EXIST reset.sql (
goto loop
) ELSE (
::Create SQL command
echo USE dbname> reset.sql
echo EXEC dbo.sp_ResetSubscription @ClientName = '%%a'>> reset.sql
echo EXEC dbo.sp_RunClientSnapshot @ClientName = '%%a'>> reset.sql
sqlcmd -i "reset.sql"
if exist reset.sql del /f /q reset.sql
)
)
if exist queue.txt del /f /q queue.txt
この爆弾をアウト:しかし、それは多くの使用、それが正常に動作しますif文の中にあるところからのループではありません。
私が必要とするのは、reset.sql
が存在しないと同時にループの同じ繰り返し内にとどまるまでループし続けることです。
元の動作と同じ理由で動作しません。 [私の答え](http://stackoverflow.com/a/9018647/1012053)を参照してください。 – dbenham