2012-03-12 70 views
0

下面是我的批處理文件代碼:如何跳過文件集中的一個文件?

for %%f in (%~dp0*.sql) do (
sqlcmd -S %SName% -U %UName% -P %Pwd% -d %DbName% -I -i "%%f" >>TsDeploy.txt 2>&1 
) 

的問題是存在這樣集必須跑不了第一個一個文件(引起別人的腳本文件關於創建表,一個是插入數據進入表格)。

我該怎麼做才能在一個批處理文件中實現目標?

回答

1

您可以重命名不能先運行的sql文件,以便它排序到最後(z前綴)。

或者你可以做這樣的事情

for %%f in (%~dp0*.sql) do (
    if "%~nxf" neq "fileNameNotToRunFirst.sql" (
    sqlcmd -S %SName% -U %UName% -P %Pwd% -d %DbName% -I -i "%%f" >>TsDeploy.txt 2>&1 
) 
) 
sqlcmd -S %SName% -U %UName% -P %Pwd% -d %DbName% -I -i "%~dp0fileNameNotToRunFirst.sql" >>TsDeploy.txt 2>&1 

或者你可以創建一個調用每個人的正確的順序主SQL腳本,如How to Run a Series of T-SQL Scripts in a Specific Order

+0

描述感謝您answer.I得到它了。 – fanshaoer 2012-03-20 03:43:31