将“DOS”命令的输出与某些内容进行比较

将“DOS”命令的输出与某些内容进行比较

(我所说的 DOS 指的是 Windows cmd.exe - 我不想在最终用户上强制使用 powershell 或类似程序)

我想运行一个命令行文件,将输出打印到 CON/屏幕。

我想捕获该输出并将其与预期输出进行比较。

...在.bat / .cmd 文件中?


具体来说,identifyImageMagick 命令,我想对 +- 300 个文件运行此操作并将实际大小与预期大小进行比较。

示例输出:

$识别rose.jpg

玫瑰.jpg JPEG 640x480 sRGB 87kb 0.050u 0:01

答案1

如果我理解正确的话,你想identify对目录中的所有 jpg 文件运行该命令,并将该命令的输出捕获到文本文件中以供以后比较。然而,比较是不是是规范的一部分吗?

下面的代码可以完成这个任务。只需从 jpg 文件所在的文件夹运行它即可:

for /R %%X in (*.jpg) do identify %%X >> PicInfo.txt

这将捕获rose.jpg JPEG ...您运行命令的目录(以及由于“/R”而产生的子目录)中每个 .jpg 文件的行,并将其附加到文件 PicInfo.txt 中。

答案2

你的问题有点难以理解。我假设你做了类似的事情

@echo 关闭
对于 (*.jpg) 中的 %%X 执行(
    识别“%%X”>“otherdir \ %%X.id”

在过去的某个时间点,因此创建了名称为的文件rose.jpg.id,现在您想验证 JPEG 文件是否没有更改。我建议

@echo 关闭
对于 (*.jpg) 中的 %%X 执行(
    识别“%%X”>“tempdir\%%X.id.tmp”
    fc "tempdir\%%X.id.tmp" "otherdir\%%X.id" > nul
    如果错误级别 1 (
        echo “tempdir\%%X.id.tmp” 和 “otherdir\%%X.id” 不同。
    ) 别的 (
        删除“tempdir\%%X.id.tmp”

fc是 Windows 命令行文件比较程序。

相关内容