sql deploy с dos - PullRequest
       8

sql deploy с dos

1 голос
/ 03 июня 2010

Как настроить приведенную ниже команду FOR для циклического обхода файлов в папке базы данных в порядке, указанном в числе, начинающемся с префикса в имени файла?

FOR / R ../Database %% f IN (* .sql) DO sqlcmd -S% 1 -d% 2 -U% 4 -P% 5 -i "%% ~ f" >> Logs /% 2_DBInstall.log || Перейти к ошибкам

Папка базы данных содержит: 001_usp_procedure1.sql 002_ups_procedure2.sql

Большое спасибо,

1 Ответ

0 голосов
/ 04 июня 2010

Пожалуйста, попробуйте следующее

del temp.txt
del temp1.txt
for  /F "usebackq "  %%F IN (`dir /b /s /o:n "../Database/*.sql"`)  DO (
echo %%~nF  / %%F >> temp.txt
)
sort temp.text temp1.text
for /F "tokens=1,2 delims=/" %%i IN (temp1.txt) DO sqlcmd -S %1 -d %2 -U %4 -P %5 -i "%%j" >> Logs/%2_DBInstall.log || goto errors

Это должно работать и для рекурсивных каталогов (процесс сортируется по глобальному имени файла без учета пути ... я понял проблему?) Обратите внимание, что используются два временных файла. Будьте осторожны с именами (или используйте настоящие временные файлы)

...