在Windows上,MZ / PE可执行文件通常有一个名为“原始文件名”的属性,用于描述创build时分配给可执行文件的原始文件名。
Windows用户可以从文件的“属性”窗口的“详细信息”选项卡中阅读(通过右键单击文件并select“属性”打开)。
我发现许多其他问题,讨论“原始文件名,所以要说清楚,我正在谈论这个领域,为mspaint.exe文件:
从Windowsbatch file检测ANSI兼容的控制台?
批处理命令执行顺序
如何使用批处理脚本中的参数调用程序?
使用Build Events停止构build并显示消息
在ubuntuterminal中执行一系列命令
然而,我想使用batch file或Windows命令行(请勿使用PowerShell)来访问/读取此属性(并可能编辑它)。
谢谢!
使用Windowsbatch file备份用户指定的位置和用户指定的文件扩展名中的文件
TortoiseGit Git从脚本提交消息
CMD打开,而不是VBS
Windows没有内置的命令行工具来从PE文件读取版本信息。
您可以使用像Resource Hacker这样的资源编辑器来导出信息,但仍然需要解析导出的文件。
在WinVista +(以及安装了桌面搜索的WinXP)上,您可以使用shell属性系统(与文件属性对话框使用相同的API)读取信息。
Microsoft开发人员已经创建了一个名为shellproperty.exe的免费工具,您可以使用它来读取System.OriginalFileName属性。
使用Windows脚本宿主,如果使用ShellFolderItem.ExtendedProperty方法,也可以访问属性系统。
最后,一个WSH脚本可以与一个批处理文件合并,创建一个具有零外部依赖的工作多边形 :
@if (1 == 0) @end /* @cscript.exe /E:jscript /nologo "%~f0" %* @goto :eof */ var objShell = new ActiveXObject("shell.application"); var objFolder2,ssfSysDir = 0x25,propVal = ""; objFolder2 = objShell.NameSpace(ssfSysDir); if (objFolder2 != null) { var objFolderItem; objFolderItem = objFolder2.ParseName("mspaint.exe"); if (objFolderItem != null) { propVal = objFolderItem.ExtendedProperty("{0CEF7D53-FA64-11D1-A203-0000F81FEDEE},6"); WScript.Echo(propVal); } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。