При работе с исполняемыми (EXE) файлами может быть полезно определить информацию об их версии. Независимо от того, являетесь ли вы разработчиком программного обеспечения, ИТ-специалистом или просто интересуетесь версией программы, существует несколько способов программного получения этой информации. В этой статье мы рассмотрим различные методы и примеры кода для получения версии EXE-файла.
Метод 1: использование свойств файла (Windows)
Один из самых простых способов получить информацию о версии EXE-файла — получить доступ к его свойствам в операционной системе Windows. Вот пример на C#:
string filePath = "path/to/your/file.exe";
FileVersionInfo versionInfo = FileVersionInfo.GetVersionInfo(filePath);
string version = versionInfo.FileVersion;
Console.WriteLine("Version: " + version);
Метод 2: использование PowerShell (Windows)
PowerShell предоставляет мощный интерфейс командной строки для управления системами Windows. Вы можете получить версию EXE-файла с помощью командлета Get-Command. Вот пример:
$filePath = "path/to/your/file.exe"
$versionInfo = (Get-Command $filePath).FileVersionInfo
$version = $versionInfo.ProductVersion
Write-Host "Version: $version"
Метод 3: использование Python
Python предлагает несколько библиотек для работы с информацией из EXE-файла. Одной из таких библиотек является pywin32. Вот пример:
import win32api
file_path = r"path\to\your\file.exe"
version_info = win32api.GetFileVersionInfo(file_path, "\\")
version = version_info['FileVersion']
print("Version:", version)
Метод 4: инструменты командной строки
Для получения версии EXE-файла можно использовать различные инструменты командной строки. Одним из таких инструментов является wmic(командная строка инструмента управления Windows). Откройте командную строку и выполните следующую команду:
wmic datafile where name="C:\\path\\to\\your\\file.exe" get Version
Метод 5: использование C/C++ (Windows)
Если вы разработчик C/C++, вы можете использовать функцию GetFileVersionInfoиз Windows API. Вот пример:
#include <windows.h>
#include <iostream>
int main() {
const char* filePath = "path\\to\\your\\file.exe";
DWORD versionSize = GetFileVersionInfoSize(filePath, nullptr);
if (versionSize != 0) {
std::vector<BYTE> buffer(versionSize);
if (GetFileVersionInfo(filePath, 0, versionSize, buffer.data())) {
VS_FIXEDFILEINFO* fileInfo;
UINT fileInfoSize;
if (VerQueryValue(buffer.data(), "\\", reinterpret_cast<LPVOID*>(&fileInfo), &fileInfoSize)) {
std::cout << "Version: " << HIWORD(fileInfo->dwFileVersionMS) << "."
<< LOWORD(fileInfo->dwFileVersionMS) << "."
<< HIWORD(fileInfo->dwFileVersionLS) << "."
<< LOWORD(fileInfo->dwFileVersionLS) << std::endl;
}
}
}
return 0;
}
В этой статье мы рассмотрели несколько способов получения версии EXE-файла. Предпочитаете ли вы использовать свойства файла, PowerShell, Python, инструменты командной строки или языки программирования, такие как C/C++, в вашем распоряжении целый ряд опций. Используя эти методы, вы можете легко получить информацию о версии любого EXE-файла, что поможет вам в разработке программного обеспечения, управлении ИТ или просто любопытстве.