Привет всем, я пишу пакетный скрипт, который должен прочитать набор файлов SQL, который существует в папке, а затем выполнить их с помощью утилиты SQLCMD.
Когда я пытаюсь выполнить, он не создает выходной файл. Я не уверен, в чем я ошибаюсь, и не знаю, как отлаживать сценарий. Может ли кто-нибудь помочь мне со сценарием?
@echo off
FOR %F IN (C:\SQLCMD\*.SQL) DO sqlcmd -S LENOVO-C00 -U yam -P yam!@ -i %F -o C:\SEL.txt -p -b
IF NOT [%ERRORLEVEL%] ==[0] goto get_Error
:Success
echo Finished Succesffuly
exit /B 0
goto end
:get_error
echo step Failed
exit /B 40
:end
Вам нужно два знака процента в вашем командном файле:
FOR %% F IN (C: \ SQLCMD * .SQL) DO (
sqlcmd -S LENOVO-C00 -U yam -P yam! @ -i %% F -o C: \ SEL.txt -p -b
)
Вы также можете поместить оператор «IF NOT» сразу после sqlcmd, если хотите проверять наличие ошибки после каждой команды sql.
Попробуйте эту строку:
FOR %%F IN (C:\SQLCMD\*.SQL) DO sqlcmd -S LENOVO-C00 -U yam -P yam!@ -i %%F -o C:\SEL.txt -p -b
или даже лучше, начните отладку с
FOR %%F IN (C:\SQLCMD\*.SQL) DO echo %%F
чтобы увидеть, работает ли этот цикл, или есть проблема с sqlcmd
.