windows 启用记录到批处理文件命令

utugiqy6  于 2022-12-30  发布在  Windows
关注(0)|答案(2)|浏览(158)

我想启用日志记录到一个批处理文件,该文件应记录命令提示符的所有内容,包括输入/输出/错误。因此,我尝试了类似以下的操作,但它导致了一个没有任何内容的空日志文件。看起来,我遗漏了一些东西。下面是批处理文件。

@echo off​
SET LOGFILE=C:\Users\xason\Desktop\Logs\logs.txt
call :logit
exit /b 0
​
:logit
set root=C:\ORACLE\ORA_DRIVERS
cd %root% >> %LOGFILE%
UPDATE.EXE E:\class.ora
ping 127.0.0.1 -n 6 > nul
d5vmydt9

d5vmydt91#

日志文件为空,因为您使用命令取消了输出

echo off

在需要记录的命令之前使用echo oncd命令通常不向stdout发送任何内容。这就是为什么你得到一个空文件。
而不是这个ping的东西,我建议

timeout 6

试试这个:

@echo off​
SET LOGFILE=C:\Users\xason\Desktop\Logs\logs.txt
echo on
call :logit >>%LOGFILE%
exit /b 0 ​ 

:logit 
set root=C:\ORACLE\ORA_DRIVERS 
cd %root%
UPDATE.EXE E:\class.ora 
@timeout 6 >nul
  • 编辑 *:(因为在注解中询问)日志文件名还可以包括日期和时间。您需要适当地更改SET LOGFILE命令。您可以从以下内容开始进行试验:
SET LOGFILE=C:\Users\xason\Desktop\Logs\log-%date%-%time%.txt
pdkcd3nj

pdkcd3nj2#

cd命令没有STDOUT。您可能需要将批处理文件的STDOUT附加到文本文件中。请从cmd:

batch_file.bat >> "C:\Users\xason\Desktop\Logs\logs.txt"

或者,在批处理文件中:

@echo off​
SET LOGFILE=C:\Users\xason\Desktop\Logs\logs.txt
call :logit >>"%LOGFILE%"
exit /b 0
​
:logit
set root=C:\ORACLE\ORA_DRIVERS
cd %root%
UPDATE.EXE E:\class.ora
ping 127.0.0.1 -n 6 > nul

或者甚至:

@echo off​
SET LOGFILE=C:\Users\xason\Desktop\Logs\logs.txt
call :logit
exit /b 0
​
:logit
set root=C:\ORACLE\ORA_DRIVERS
cd %root%
UPDATE.EXE E:\class.ora >> %LOGFILE%
ping 127.0.0.1 -n 6 > nul

相关问题