Batch file 将标准输出重定向到屏幕和文本文件

Batch file 将标准输出重定向到屏幕和文本文件,batch-file,windows-server-2008,dos,Batch File,Windows Server 2008,Dos,我正在编写一个dos批处理脚本,我想做的一件事是将命令行重定向到标准输出和文本文件。我两者都可以,但不能两者兼得。另外,我不能用另一个批处理脚本调用它,也不能在命令行调用它 我要执行的命令是reg添加“%regKey%”/f 输出是操作成功完成。我希望它显示在标准输出上并附加到文本文件中 到目前为止,我已经尝试: reg添加“%regKey%”/f>>%logfile%>CONCON>>%logfile% 这对你自己和其他人来说都更容易理解。我解决了这个问题。这里是魔术,虽然表演不是很好,也不适

我正在编写一个dos批处理脚本,我想做的一件事是将命令行重定向到标准输出和文本文件。我两者都可以,但不能两者兼得。另外,我不能用另一个批处理脚本调用它,也不能在命令行调用它

我要执行的命令是
reg添加“%regKey%”/f
输出是
操作成功完成。
我希望它显示在标准输出上并附加到文本文件中

到目前为止,我已经尝试:

reg添加“%regKey%”/f>>%logfile%>CON
CON>>%logfile%
这对你自己和其他人来说都更容易理解。

我解决了这个问题。这里是魔术,虽然表演不是很好,也不适用于某些事情:

@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
set logfile=test.out
echo. 2>%logfile% 
set /A count=0
set /A lastline=0
:loop
if not %count%==100 (
  set /A count += 1
  SET PR >> %logfile%
  CALL :printlog
  goto :loop
)
goto :pause
:printlog
SET incount=0
FOR /F "delims=" %%M in (%logfile%) DO (
    set /A incount +=1
    if %incount% GEQ %lastline% (
      ECHO %%M
      SET /A lastline=%incount%
    )
)
ECHO -
EXIT /B 0
:pause
pause

您的平台上真的没有可用的
tee
命令吗?@sarnold,不幸的是,
tee
不可用。它会显示在屏幕上,并将命令输出传输到文本文件。但它也会显示文本文件中的所有内容。我想这会吓到负责剧本的人。另外,我需要对多个命令执行此操作,以便屏幕变得繁忙。这很有效。我只需要在最后输入
。暂停一下,但没关系。
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
set logfile=test.out
echo. 2>%logfile% 
set /A count=0
set /A lastline=0
:loop
if not %count%==100 (
  set /A count += 1
  SET PR >> %logfile%
  CALL :printlog
  goto :loop
)
goto :pause
:printlog
SET incount=0
FOR /F "delims=" %%M in (%logfile%) DO (
    set /A incount +=1
    if %incount% GEQ %lastline% (
      ECHO %%M
      SET /A lastline=%incount%
    )
)
ECHO -
EXIT /B 0
:pause
pause