0
我有以下批處理腳本執行包含在多個文件SQL腳本SQL文件,使用批處理腳本SQLCMD工具:執行,什麼也不做
@echo off
setlocal enabledelayedexpansion
set /p servername=Enter DB Servername :
set /p dbname=Enter Database Name :
set /p spath=Enter Script Path :
set /p usr=Enter the username :
set /p pw=Enter the password :
set hr=%time:~0,2%
if "%hr:~0,1%" equ " " set hr=0%hr:~1,1%
set logfilepath= %spath%\output_%date:~-4,4%%date:~-10,2%%date:~-7,2%_%hr%%time:~3,2%%time:~6,2%.log
set cmd='dir "%spath%\*.sql" /b'
FOR /f "delims=" %%f IN (%cmd%) DO (
echo ******PROCESSING %%f FILE******
echo ******PROCESSING %%f FILE****** >> %logfilepath%
SQLCMD -S%servername% -U%usr% -P%pw% -d%dbname% -s" -i%%f -b >> %logfilepath%
IF !ERRORLEVEL! NEQ 0 GOTO :OnError
)
GOTO :Success
當我運行此腳本提示「1>」將等待命令。我可以理解發生了什麼問題。
非常感謝你
非常感謝你的解決方案 – zappasan
不客氣。僅供參考,我打算在-d%之後添加一個空格。另外,請注意,在SQLCMD之後檢查錯誤級別對您沒有太大幫助。它僅驗證您是否能夠啓動SQLCMD ...它不會提供有關SQLCMD運行的SQL命令的狀態的任何結果。爲此,您需要解析您將結果指向的日誌文件的內容。 – RGuggisberg