0
ich die folgende Batch-Skript haben in vielen Dateien enthalten SQL-Skripte für die Ausführung, mit sqlcmd Dienstprogramm:Batch-Skript SQL-Dateien für die Ausführung, das tut nichts
@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
Wenn ich dieses Skript eine Eingabeaufforderung mit "1>" wartet auf den Befehl. Ich kann verstehen, was falsch läuft.
Vielen Dank
Vielen Dank Ihre Lösung funktioniert – zappasan
Gern geschehen. Zu Ihrer Information, ich wollte ein Leerzeichen nach -d% hinzufügen. Beachten Sie auch, dass das Überprüfen der Fehlerstufe nach SQLCMD nicht viel für Sie bedeutet. Es überprüft nur, dass Sie SQLCMD starten konnten ... es gibt kein Ergebnis in Bezug auf den Status der SQL-Befehle, die von SQLCMD ausgeführt werden. Dazu müssen Sie den Inhalt der Protokolldatei analysieren, an die Sie die Ergebnisse weitergeleitet haben. – RGuggisberg