Batch file 输出到日志文件和屏幕批处理文件
我写了一个批处理文件。 是否可以将输出发送到日志文件和屏幕?? 我的命令是: sqlplus-S%USER\u NAME%/%PASSWORD%@%TNS\u NAME%OG.2action.sqlBatch file 输出到日志文件和屏幕批处理文件,batch-file,Batch File,我写了一个批处理文件。 是否可以将输出发送到日志文件和屏幕?? 我的命令是: sqlplus-S%USER\u NAME%/%PASSWORD%@%TNS\u NAME%OG.2action.sql 我希望此命令的输出将显示在屏幕上,并显示在日志文件中。??您可以使用批处理编写自己的tee程序 与myProgram|tee.bat outfile.txt一起使用 @echo off setlocal DisableDelayedExpansion set "outfile=%~1" ( f
我希望此命令的输出将显示在屏幕上,并显示在日志文件中。??您可以使用批处理编写自己的tee程序 与
myProgram|tee.bat outfile.txt一起使用
@echo off
setlocal DisableDelayedExpansion
set "outfile=%~1"
(
for /F "usebackq delims=" %%L in (`find /N /V ""`) DO (
set "line=%%L"
setlocal EnableDelayedExpansion
set "line=!line:*]=!"
(echo(!line!) > con
(echo(!line!)
endlocal
)
) > "%outfile%"
如果打开*nix,则tee
命令将执行此操作。就像在sqlplus-S中一样…|tee mylog.log
。和的可能副本。另一个副本-此副本具有简单的混合批处理/JScript答案,使用纯本机脚本提供适当的异步tee功能:不错,但不幸的是,如果myProgram
读取stdin
,此脚本会遇到问题。例如,如果myProgram
是一个包含3行的批处理脚本:@echo Hello
、@pause
和@echo world
,则在myProgram
终止之前,控制台上不会显示任何内容……是的,它会等待完整的数据被传输,但是在OP的情况下,这似乎是确定的,myProgram>outfile.txt&键入outfile.txt
不会像这个批处理脚本那样有效吗?当然要简单得多。@dbenham-Hmmm,也许你是对的:-),但是使用tee.bat,你可以将tee.bat的代码更改为异步变体