我遇到一個奇怪的問題,我敢肯定,很容易解釋和固定。從SQLServer的後一個批處理文件運行安裝SQLCMD
我使用.bat文件來安裝很多程序,其中一個是SQL Server 2012(如果它很重要,其他安裝只是.net框架,OPOS驅動程序和使用SQL Server的POS軟件) 。
我可以獲得批處理文件以靜默安裝一切,包括SQL(帶SSMS),這非常棒。但是一旦安裝了SQL Server,我想運行幾個SQL腳本來創建/附加數據庫。我知道安裝工作(如果我不'嘗試做除安裝以外的任何東西),我知道SQLCMD的工作原理(如果我單獨運行,安裝後),但如果我嘗試運行SQLCMD在安裝後,在同一個批處理文件,它無法與標準的「SQLCMD不被識別爲一個內部或外部命令......」
我已經把這個下來我需要重新啓動CMD得到它識別新命令(即SQLCMD),所以我想我會將SQLCMD命令拆分爲一個單獨的批處理文件並調用它,但它仍然不起作用。在CMD.exe選取新命令之前,我必須關閉原始批處理文件。
因此......是否可以'刷新'cmd.exe,以便新安裝的SQLCMD命令可以從原始批處理文件中使用?
這裏是(一些)我的腳本。 (請注意,我刪除了所有其他的安裝SQL Server之前)
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
"%~dp0SQLServer.exe" /QS /INDICATEPROGRESS /ACTION=install /FEATURES=SQL,SSMS /INSTANCENAME=Datasym /SECURITYMODE=SQL /SAPWD=Welcome21ST /IACCEPTSQLSERVERLICENSETERMS
echo.
echo SQL Server installed
sqlcmd -S %computername%\DATASYM -U sa -P Welcome21ST -i %script%
的%script%
變量的變化(就像我說的,有多種文字,我想運行)。而且我知道這些腳本本身是有效的。
爲什麼CMD不承認SQLCMD的命令?
我試圖替換行:
call sqlscript.bat
sqlcmd -S %computername%\DATASYM -U sa -P Welcome21ST -i %script%
,因爲我認爲這將打開另一個CMD,EXE(它做),所以我假設第二CMD會看到ew命令(SQLCMD),但它似乎並不如此。
任何關於如何讓SQLCMD在原始批處理文件中工作的幫助將不勝感激。
只使用sqlcmd的完整路徑。 –
我同意馬特所說的。原因是SQL安裝可能會修改PATH環境變量以提供SQLCMD的路徑。這不適用於此CMD會話。 – RGuggisberg