【问题标题】:How to use cmd to extract file version information from a directory?如何使用cmd从目录中提取文件版本信息?
【发布时间】:2015-06-25 08:12:03
【问题描述】:

如何在批处理脚本中使用命令行提取目录中存在的文件的版本号?

【问题讨论】:

  • 抱歉,我从支持的角度来看,以便我们为我们的软件创建的补丁可以在任何 Windows 机器上运行。我不希望它依赖于任何其他无法达到目的的外部实用程序例如:powershell 并不存在于所有机器中,客户/客户可能没有它在他们的机器上。
  • 我使用 sygcheck 来获取信息,然后使用 sfk 来获取以这种方式输出的文件的二进制版本 二进制版本:9.1.0.37019,我只想要“9.1.0.37019”,什么都没有在我的临时文件中之前,这意味着要从文件中删除之前的任何内容。我怎么可能这样做?

标签: batch-file batch-processing


【解决方案1】:

你可以试试这个用 powershell 打包的批处理文件:

@echo off
echo.
set /p PathFile="Enter the absolute path to your application to retrieve its version > "
echo.
SET ScriptDirectory=%~dp0
SET ScriptPath=%ScriptDirectory%FileVersion.ps1 
echo (Get-Item '%PathFile%').VersionInfo.FileVersion > %ScriptPath%
cmd /k PowerShell -NoProfile -ExecutionPolicy Unrestricted -File ""%ScriptPath%""

【讨论】:

  • 感谢 Hackoo,我相信 sigcheck 已经为我完成了这项工作。我提取了从 sigcheck 生成的某些信息。现在我需要执行以下操作: 1. 我在 tmp 文件中有 detabbed 输出,我想从 tmp 文件中删除前 17 个字符并将结果放入另一个 temp2 文件 2. 然后我想将值存储在temp2 在变量中,以便我可以将变量用于 IF 条件。可以请教吗?
  • 好的,我已经通过 sfk replace 设法做到了这一点,并且我知道我使用 set /p string =
【解决方案2】:

使用 sigcheck 实用程序提取文件版本信息。

我下载了大约 290KB 的 sigcheck.exe,然后使用以下命令获取文件版本信息:

SIGCHECK -a C:\Program Files(x86)\Software\bin\Software.exe

【讨论】:

    猜你喜欢
    • 2011-09-14
    • 2012-08-24
    • 2015-08-20
    • 1970-01-01
    • 2022-12-04
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多