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

If output contains "File Not Found", then log statement A, otherwise statement B (batch file)

我有一个批处理文件正在检查分区以查看是否有休眠文件。如果目录列表完成但未找到文件,它将输出:未找到文件,但出于某种原因,文本没有按我的意愿进入我的日志。如果有办法将其添加到我的日志中,请告诉我。

否则,我希望有一些代码基本上会说,如果输出包含 "Files 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%"

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

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

准确回答标题中的问题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:

&& 作为 "if previous anser was successfull then..."

|| 作为 "if previous anser was not successfull then..."

但是随着批处理文件的构建,

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

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