2013-09-25 173 views
4

我試圖使用單個.bat文件來: 1)從Windows 7 Professional 64位機器上的SQLEXPR_x64_ENU.exe和 安裝SQL Server 2008 R2 Express 2)安裝完成後運行一些.sql腳本。問題與SQL安裝和sqlcmd在相同的.bat文件中

看來,如果sqlcmd是從運行安裝的相同.bat文件運行的,那麼sqlcmd會失敗,並顯示以下錯誤:「'sqlcmd'不被識別爲內部或外部命令,可操作程序或批處理文件。 「

如果install和.sql腳本是從單獨的.bat文件運行的,那麼我沒有問題(所以我知道問題不在於sqlcmd語法)。我已嘗試使用單個.bat並在新窗口中運行sqlcmd命令(啓動cmd/c「sqlcmd ...」),並從原始.bat文件中調用包含sqlcmd命令的第二個.bat文件( \ filepath \ file.bat),但在每種情況下都會發生相同的錯誤。

我不希望用戶必須啓動一個以上的.bat文件,因爲它開創了運行.bat文件順序錯誤,運行一個而不是其他,等

的問題我的兩個問題是:

  1. 有沒有人知道爲什麼會發生這種情況?
  2. 是否有解決方案,只涉及啓動一個單一的.bat文件?

回答

5

恐怕我不能100%確定在這個問題上,我不能將它添加到評論中,所以我必須把它放在這裏。

1.有人知道爲什麼會發生這種情況嗎?

  • 我想象一下發生這種情況,因爲當你安裝SQL Server時,它會添加特定的路徑到Windows環境變量。由於批處理腳本用於安裝SQL Server版本,我猜測它並不是刷新Windows環境變量,這意味着SQLCMD.exe文件包含在C:\ Program Files \ Microsoft SQL Server \ 100 \ Tools \ Binn \ (或者無論你安裝它是不是緩存)。

2.是否有解決方案,只涉及啓動一個單一的.bat文件?

  • 如果您每次將它安裝到默認位置,例如C:\ Program Files \ Microsoft SQL Server。然後你可以直接從那裏啓動SQLCMD。 I.E.

C:\ Program Files文件\ Microsoft SQL Server的\ 100個\工具\ BINN \ SQLCMD.exe -q等....

你可能是值得創建該路徑變量,使其更容易。

我不知道從批處理腳本刷新或尋找新的Windows環境變量的過程,但我想象的是可能的原因。

+0

我會嘗試指定完整的文件路徑,然後提供更新。謝謝。 – wonderman

+0

指定完整的文件路徑確實可以解決問題。我會贊成這個答案,但我沒有足夠的聲望點。再次感謝你。 – wonderman