2010-06-03 4 views
1

아래의 FOR 명령을 파일 이름 앞에 접두사가 붙은 순서대로 데이터베이스 폴더 내의 파일을 반복하도록 사용자 정의 할 수 있습니까?dos와 함께 sql deploy

FOR/R ../Database %% f IN (* .sql) DO sqlcmd -S % 1 -d % 2 -U % 4 -P % 5 -i "%% ~ f">> 로그/% 2_DBInstall.log || 고토 오류

Database 폴더에는 다음이 포함 001_usp_procedure1.sql 002_ups_procedure2.sql

정말 감사합니다,

+0

절차가 예상대로 실행되지 않습니까? 파일의 빠른 테스트를 실행합니다. 006.sql을 통해 000.sql이 나를 위해 숫자 순서로 실행되었습니다. 동일한 숫자 순서로 처리하려는 하위 폴더가 있습니까? – LittleBobbyTables

+0

@LittleBobby FOR의/R 스위치는 재귀를 나타냅니다. 따라서 아마도 그럴 것입니다. –

답변

0

그것은 너무 재귀 디렉토리에 작업을해야 다음

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 

을 시도하십시오 (공정 경로를 고려하지 않고 전역 파일 이름으로 정렬됩니다 ... 문제점을 이해 했습니까?) 두 개의 임시 파일이 있습니다. g 사용. 이름에주의하십시오 (또는 실제 임시 파일 사용)

+0

감사합니다 백만 번. 그게 내가 필요한거야. – Marcelo

관련 문제