我試圖執行一個使用DTExec.exe作爲批處理的一部分的dtsx腳本。下面的命令行腳本工作:DTExec.exe CheckFile和驗證失敗
"C:\Program Files\Microsoft SQL Server\130\DTS\Binn\DTExec.exe" -File "\\\\vm-to-somewhere\d$\Projects\test.dtsx"
但是,如果我嘗試實際運行該腳本之前運行的test.dtsx文件檢查/檢驗,它失敗的6退出代碼(這相當於:該實用程序在命令行中遇到了語法或語義錯誤的內部錯誤)。
$ "C:\Program Files\Microsoft SQL Server\130\DTS\Binn\DTExec.exe" -CheckFile "\\\\vm-to-somewhere\d$\Projects\test.dtsx"
$ "C:\Program Files\Microsoft SQL Server\130\DTS\Binn\DTExec.exe" -Validate "\\\\vm-to-somewhere\d$\Projects\test.dtsx"
Returns: Option "\\\\vm-to-somewhere\d$\Projects\test.dtsx" is not valid.
這可能只是我俯瞰一個簡單的錯誤,我在想,如果這是一件用反斜槓,但第一個命令運行正常,因此沒有意義。另外,如果有人可以向我指出-CheckFile和-Validate之間的區別,那可能會幫助我決定在我的腳本中使用哪一個。我只需要知道在執行它之前dtsx是否正常工作,因爲需要3小時才能運行,我寧願早點找出它。
參考文獻:https://msdn.microsoft.com/en-us/library/hh231187(v=sql.110).aspx
'CheckFile'不檢查dtsx文件。它將路徑設置爲檢查點文件,您可以使用該文件重新啓動程序包(對於三小時的程序包可能非常方便)。但是它只有在你的軟件包中專門構建了檢查點邏輯時纔有用。我想你沒有,所以不要打擾它。您可以使用程序DTExecUI.exe從GUI爲您構建命令行。如果您的軟件包存在實際的驗證問題,那麼無論如何它都可能在執行的第一分鐘內拋出。 –