我正在编写dos批处理脚本,我想要做的一件事是将命令行重定向到标准输出和文本文件。我可以做到,但不是两者兼而有之。另外,我不能用另一个批处理脚本调用它或在命令行调用它。
我要执行的命令是reg add "%regKey%" /f
输出为The operation completed sucessfully.
,我希望它显示在标准输出上并附加在文本文件中。
到目前为止,我已经尝试过:
reg add "%regKey%" /f>>%logfile%>CON
< - 仅附加到文本文件
reg add "%regKey%" /f>CON>>%logfile%
< - 仅显示在标准输出
我看到了这个SO,但这是为了bash。
答案 0 :(得分:2)
reg add "%regKey%" /f>>%logfile%
type %logfile%
对于您自己以及其他任何会看到您的脚本的人来说,这更容易理解。
答案 1 :(得分:0)
我解决了。这是魔术,虽然表现不是那么好,但对某些事情不起作用:
@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