Batch file 输出到日志文件和屏幕批处理文件

Batch 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

我写了一个批处理文件。 是否可以将输出发送到日志文件和屏幕?? 我的命令是: 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"

(
  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的代码更改为异步变体