SQLCMD, 'tee' не распознается как внутренняя или внешняя команда - PullRequest
2 голосов
/ 20 июня 2019

У меня есть файл fetchDb.bat, который вызывает много файлов .sql в обновить базу данных до последней версии

это команда, используемая для выполнения .Sql Содержимое файла

sqlcmd %Sqlinstance% -d DataBase -i "fileName.sql" | tee "FileNameOutput.txt"

но это сообщение всегда появляется для меня 'tee' не распознается как внутренняя или внешняя команда, работающая программа или командный файл.

Ответы [ 2 ]

1 голос
/ 20 июня 2019

tee ( Tee-Object ) - это командлет, который поддерживается в powershell .поэтому вы должны использовать powershell для этой или , которую вы можете использовать нижеприведенной командой, чтобы сохранить вывод в файл в летучей мыши

 COMMAND >> Filename

в вашем случае:

sqlcmd %Sqlinstance% -d DataBase -i "fileName.sql" >> "FileNameOutput.txt"
0 голосов
/ 20 июня 2019

Из оболочки CMD вы можете выполнить одно из следующих действий, но убедитесь, что ваш пакетный файл отражает только то, что вы хотите видеть в выходном файле.Это позволит вам использовать tee.

Использование командного файла:

PowerShell.exe -Command ".\fetchDB.bat | tee 'filenameoutput.txt'"

Использование команд, которые можно передать в PowerShell:

PowerShell.exe -Command "$sqlinstance='servername'; sqlcmd.exe -S $sqlinstance -d Test -i 'fileName.sql' | tee 'filenameoutput.txt'"

# You can use this option if your CMD shell has variable sqlinstance defined
powershell.exe -Command "sqlcmd.exe -S %sqlinstance% -d Test -i 'fileName.sql' | tee 'filenameoutput.txt'"

С консоли PowerShell вы можете просто вызвать полный пакетный файл и канал для tee.

.\fetchdb.bat | tee "filenameoutput.txt"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...