Verwendung des Powershell-Befehls invoke-sqlcmd im Stapelskript

0

Ich habe einen Powershell-Befehl, den ich in einem Stapelskript ausführen möchte. Es funktioniert gut in der Powershell-Konsole, aber ich kann es im Batch-Skript nicht richtig aufrufen. Der Powershell-Befehl sieht folgendermaßen aus:

invoke-sqlcmd -inputfile "D:\T3 Reports\sql.sql" -ServerInstance ISD-DB02 | export-csv "D:\T3RawDataFiles\T3HistoricalRaw\Complaint\samp.csv" -Force -En UTF8

Warum funktioniert dieser Befehl in einem Batch-Skript nicht?

Ist es auch möglich, eine Stapelvariable anstelle des Dateipfads für die Eingabe- und Ausgabedatei zu verwenden, anstatt den gesamten Pfad in den Powershell-Befehl einzufügen (wird immer noch im Stapelskript ausgeführt)?

Vielen Dank.

kedd05
quelle

Antworten:

0

Ich habe festgestellt, dass das funktioniert :), um das invoke-sqlcmd im Batch-Skript auszuführen:

Ich habe diese Zeile verwendet:

powershell -Command "& {Add-PSSnapin SqlServerCmdletSnapin100; Add-PSSnapin SqlServerProviderSnapin100; invoke-sqlcmd -inputfile '%sqlPath1%' -ServerInstance %Server% | export-csv '%out_path1%\%out1_fn%' -Force -En UTF8;}"

funktioniert wie Charme yay! ^ _ ^

kedd05
quelle
yup, das ist der typische Weg, um es zu tun :-)
Megamorf