(我所说的 DOS 指的是 Windows cmd.exe - 我不想在最终用户上强制使用 powershell 或类似程序)
我想运行一个命令行文件,将输出打印到 CON/屏幕。
我想捕获该输出并将其与预期输出进行比较。
...在.bat / .cmd 文件中?
具体来说,identify
ImageMagick 命令,我想对 +- 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 命令行文件比较程序。