I used this file compare button on a file inside a zip and a file in a regular folder:
<?xml version="1.0"?>
<button display="both" effect="gray" label_pos="right" separate="yes">
<guid>{0BA52189-7F38-4CB8-A21F-C8DB9BB9E526}</guid>
<label>Bin F</label>
<tip>Binary Compare -- Files -- Source vs Destination</tip>
<icon1>AE-Icons\AEi-Diff-20.png,0</icon1>
<function type="batch">
<instruction>fc /b {filepath$} {filepathdest$}</instruction>
<instruction>pause</instruction>
<instruction>@nodeselect</instruction>
</function>
</button>
If the source file is inside a zip file, it is auto-extracted to a temp dir, and then compared correctly to the destination file.
If the destination file is inside a zip file, nothing happens.
I would have hoped the destination file could be in a zip file, or both source and dest could be in a zip file.