Использование SQLCMD в пакетном файле - PullRequest
0 голосов
/ 24 августа 2010

Привет, все, что я пишу пакетный скрипт, который должен прочитать набор файлов 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

Ответы [ 3 ]

1 голос
/ 24 августа 2010

Если это фактически пакетный файл (не выполняется вручную в командной строке), то переменные %F должны иметь удвоенные символы % из-за способа, которым cmd.exe выполняетстроки, прочитанные из командного файла:

FOR %%F IN (C:\SQLCMD*.SQL) DO sqlcmd -S LENOVO-C00 -U yam -P yam!@ -i %%F -o C:\SEL.txt -p -b

Хотя я бы подумал, что вы получите ошибку

F was unexpected at this time.

, если у вас только один символ % перед переменнойимя.

1 голос
/ 24 августа 2010

Попробуйте щелкнуть правой кнопкой мыши Batch File и запустите от имени администратора.

0 голосов
/ 08 февраля 2012

Похоже, что ответ будет больше так:

FOR %%F "usebackq" IN (`dir.exe C:\SQLCMD*.SQL`) DO ... 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...