SQLCMD, 'tee' не распознается как внутренняя или внешняя команда

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

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

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

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

Tee — это псевдоним для Tee-Object, принадлежащий только PowerShell. Эта часть кода выполняется в оболочке или сеансе PowerShell или в оболочке cmd? Если это прямая строка кода из батника, то поэтому и не работает. Вы можете запустить этот фрагмент из PowerShell, если правильно передадите %Sqlinstance%.
AdminOfThings 20.06.2019 13:41
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
2
1
1 767
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

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

 COMMAND >> Filename

в твоем случае :

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

Спасибо, но есть ли другое решение для передачи этой команды из powershell в Cmd?

Ahmed Halawa 20.06.2019 14:01

да. следуйте этому: stackoverflow.com/questions/16436405/…

Nirav Mistry 20.06.2019 14:15

В оболочке 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"

спасибо, я также попробовал утилиту unix, и она отлично работает

Ahmed Halawa 20.06.2019 21:38

Другие вопросы по теме