我有fetchDb.bat文件,该文件将许多.sql文件调用到 将数据库升级到最新版本
这是用于执行.Sql文件内容的命令
sqlcmd %Sqlinstance% -d DataBase -i "fileName.sql" | tee "FileNameOutput.txt"
但是此消息始终为我出现 不能将“ tee”识别为内部或外部命令,可操作程序或批处理文件。
答案 0 :(得分:1)
tee ( Tee-Object )
是 powershell 支持的cmdlet。因此,您必须为此使用,或者可以使用以下命令在bat中将输出保存到文件
COMMAND >> Filename
根据您的情况:
sqlcmd %Sqlinstance% -d DataBase -i "fileName.sql" >> "FileNameOutput.txt"
答案 1 :(得分:0)
在CMD Shell中,您可以执行以下任一操作,但请确保批处理文件仅回显您要在输出文件中看到的内容。这将使您可以使用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"