Пользовательские сценарии и выходные папки для sqlcmd в командном файле - PullRequest
0 голосов
/ 12 июня 2018

В настоящее время приведенный ниже цикл For / Do проходит через все файлы SQL, которые находятся в в той же папке , что и сам пакетный файл, и выводит файлы CSV в указанную пользователем папку (%OUTPUTFOLDER% фактически созданоранее в командном файле как подпапка %SCRIPTFOLDER%, которая указана пользователем):

FOR /F "tokens=*" %%S IN (
    'DIR /B "%SCRIPTFOLDER%\*.sql" '
) DO (
    echo Reading scripts from: %SCRIPTFOLDER%\*.sql
    echo Script: %%~fS
    echo Output: %OUTPUTFOLDER%\%%~nS.csv
    sqlcmd -b -S %INSTANCE% -d %DATABASE% -i "%%~fS" -s "|" -o "%OUTPUTFOLDER%\%%~nS.csv" -W
    IF ERRORLEVEL 1 GOTO errorhandling
    ECHO %%~nS.csv successfully created
)

Для наглядного примера, если бы у меня была структура папки

C:\Extract\extract.bat
C:\Extract\Scripts\
C:\Extract\Output\

Переменная %SCRIPTFOLDER% устанавливается пользователем и является папкой, в которой, как вы уже догадались, содержатся сценарии.Но пакетный файл тоже должен быть в этой папке.Мне нужно изменить это, чтобы скрипты не должны были находиться в той же папке, что и командный файл.Т.е. пользователь может указать как %SCRIPTFOLDER%, так и %OUTPUTFOLDER%

Из-за вывода echo Script: %%fS я предполагаю, что это то, что мне нужно изменить - возможно, то, что также находится в строке FOR,но я не вижу, как именно это сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...