2010-06-03 40 views
1

如何自定義下面的FOR命令以循環遍歷數據庫文件夾中的文件,並按照文件名前綴中的數字順序? >>日誌/數據庫%% f IN(* .sql)DO sqlcmd -S%1 -d%2 -U%4 -P%5 -i「%%〜f」 %2_DBInstall.log ||轉到錯誤sql部署與dos

數據庫文件夾包含: 001_usp_procedure1.sql 002_ups_procedure2.sql

非常感謝,

+0

是否按預期順序執行您的過程?通過006.sql運行對文件000.sql的快速測試對我來說按數字順序運行。你有你想要以相同的數字順序處理的子文件夾? – LittleBobbyTables 2010-06-03 16:50:48

+0

@LittleBobby FOR中的/ R開關表示遞歸,因此情況可能是 – 2010-06-04 01:38:43

回答

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 

應該遞歸目錄工作過(進程按照全局文件名排序,不考慮路徑...我是否理解這個問題?) 請注意,兩個臨時文件是bein使用了。注意名稱(或使用真實臨時文件)

+0

Thanks million belisarius。這正是我需要的。 – Marcelo 2010-06-04 14:41:30