У меня есть необходимость запуска файла .bat для запуска команды SQL по требованию, она должна иметь if
, вложенную в for
, и if
следует повторять до значения true.Простая логика в .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
This бомбы, когда он попадает в петлю, если я перееду: цикл от того, где она находится в пределах, если заявление он работает нормально, однако это не так много использования.
Мне нужно, чтобы это продолжалось до тех пор, пока reset.sql
не существует, но в то же время оставайтесь в пределах одной и той же петли цикла.
Это не будет работать по тем же причинам, что оригинал не будет работать. См. [Мой ответ] (http://stackoverflow.com/a/9018647/1012053) – dbenham