我正在尝试sqlcmd使用以下命令从文件运行sql脚本:
sqlcmd -S <server> -d <database> -i <input file> -o <output file>
-U <user> -P <password>
Run Code Online (Sandbox Code Playgroud)
我运行我的sql文件并输出到日志文件.
问题是这改变了sqlcmd文件的输出..我想得到输出到shell.
@Noam,
UNIX世界中有一个标准程序,它从stdin读取并写入stdout 和指定文件:tee命令.以下示例将当前目录列为stdout和"myfile":
$ ls | tee "myfile"
Run Code Online (Sandbox Code Playgroud)
有一些用于windows的开源端口,比如wintee,它们甚至可以实现自己的实现(参见此处),但PowerShell实际上已经内置了这个实用程序:Tee-Object.以下示例类似于之前的,在PowerShell中:
PS [c:\tmp]
> dir | tee myDirContents.txt
Run Code Online (Sandbox Code Playgroud)
因此,以下命令将使用当前的Windows凭据将myscript.sql执行到myserver中,其结果将输出到控制台并输出到"result.txt":
PS [c:\tmp]
> sqlcmd -i mysrcipt.sql -S myserver -E | tee "result.txt"
Run Code Online (Sandbox Code Playgroud)