Мне нужно запустить файл .bat для запуска команды SQL по требованию. Он должен иметь if
, вложенный в for
, и if
должен повторяться до истины.
То, что у меня есть:
@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
не будет существовать, но в то же время оставаться в одной и той же итерации цикла.