如果输出包含" File Not Found",则记录语句A,否则语句B(批处理文件)

时间:2016-01-12 19:57:38

标签: batch-file logging output

我有一个批处理文件正在检查parition以查看是否有一个hiberation文件。如果目录列表完成且找不到文件,它将输出:File Not Found,但由于某种原因,文本没有按我的意愿进入我的日志。如果有办法登录我的日志,请告诉我。

否则,我希望有一些代码基本上可以说,如果输出包含"找不到文件"然后记录文本" File Not Found"在我的输出日志中。如果是这样,它会自动记录我需要的信息,因此不需要任何信息。

set output=mylog.txt

echo.=================================>> "%output%"
echo.Performing Hibernation file Check...
echo.Hibernation File Check: >> "%output%"
C:
cd /
dir /a /s hiberfil.sys >> "%output%"
echo.
echo.
echo.=================================>> "%output%"

2 个答案:

答案 0 :(得分:2)

准确回答标题then log statement A, otherwise statement B

中的问题
(dir /a /s hiberfil.sys >nul 2>&1 && echo yes || echo no) >>"%Output%"

>nul 2>&将所有输出(StdOut和StdErr)重定向到NUL:

&&用作"如果之前的anser成功,那么......"

||用作"如果以前的anser不成功,那么......"

但是,在构建批处理文件时,

dir /a /s /b hiberfil.sys >> "%output%" 2>&1

将是最好的答案。它只提供一行反馈 - "文件未找到"或包含完整路径的文件名。 (除了它找到几个匹配的文件 - 然后每个文件一行)

答案 1 :(得分:0)

将批处理文件中的dir命令更改为以下内容,同时将stderr输出到输出stdout的同一文件中。

dir /a /s hiberfil.sys >> "%output%" 2>>&1