我有两个可执行文件(file1.exe 和 file2.exe)。
两者都是“相同”的文件,但其中一个是供应商提供的比另一个更新的版本。当我打开其中之一的属性时,我会在“详细信息”选项卡下看到以下内容:

在批处理中,我想比较两个文件版本并在版本不同时做一些事情(“如果这个,那么那个”类型的场景)。
我搜索了高低,但似乎找不到批量查看“文件版本”属性的方法。有没有办法做到这一点?
请注意,这不是“为我编写脚本”的问题。目的是对答案进行更一般的概述或描述,在这一点上,细节应该能够更容易地出现。
我正在寻找一种在 Windows 10 和 11 上使用命令行File description从文件的元数据中读取字段的方法。
许多其他字段的值可以使用wmic获得,如该问题的答案中所述。
但似乎没有办法获得File description使用该方法显示的值。例如,对于 windows explorer.exe,Win11 中显示的属性可能如下所示
但所有wmic显示的是文件的完整路径:
C:\>wmic datafile where Name="C:\\windows\\explorer.exe" get Description
Description
C:\windows\explorer.exe
Run Code Online (Sandbox Code Playgroud)
有没有办法获取 explorer.exe 对话框中显示的每个字段,并使用命令行获取与此处显示的相同的值?
因此,我正在寻找一种命令行方法来获取文件的相对低级元数据的简短(ish)文本转储,与stat*nix 系统上的方式大致相同。
换句话说,无需实际读取文件内容即可通过 Win32 或 NT 文件 API 轻松获得信息,而且绝对无需靠近 Shell(如资源管理器和保存/打开对话框中所见,以及任何使用shell32.dll.
在 NTFS 上,此信息往往会存储在文件的 MFT 条目中,尽管我听说哪些属性最终会出现在正确的 MFT 中很大程度上取决于哪些属性适合,因为许多属性是可选的、可重复的,并且/ 或可变大小,有些可以,但也可以在 MFT 中使用多个插槽。(事实上,如果其他属性不占用太多空间,甚至可以将文件/目录的完整内容存储在 MFT 中!)所以,嗯,显然“出现在 MFT 中”不能用于实际定义我在找什么。
另外,我不是在寻找解析 NTFS 本身的工具,或者只在 NTFS 文件系统上工作:我只提到 NTFS 是因为,还有哪些其他本地 FS 将支持更多 NT 特定的东西?
具体来说,这是stat我用作路由器的 Debian 机器上的:
hydrogen% stat .
File: ‘.’
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: fe00h/65024d Inode: 507974 Links: 4
Access: (0755/drwxr-xr-x) Uid: ( 1000/ naesten) Gid: ( 1000/ naesten)
Access: …Run Code Online (Sandbox Code Playgroud)