nodejs получить версию исполняемого файла - PullRequest
0 голосов
/ 04 июля 2019

Я хотел бы знать, как использовать Node.js для получения AssemblyVersion или AssemblyFileVersion исполняемого файла Windows.

Я не уверен, имеет ли это значение, но рассматриваемый исполняемый файл является .netисполняемый файл.

Я рад использовать тонкую стороннюю зависимость, если это необходимо.

Спасибо за любую помощь

1 Ответ

0 голосов
/ 04 июля 2019

Я могу использовать команду в Windows wmic следующим образом:

wmic datafile where name='file/program.exe' get version

Который напечатает стандартную строку как это:

Version
2.0.1.0

, который можно легко разобрать, разбив новую строку и обрезав.

Итак, я делаю обещание вызова exec следующим образом:

PromiseExec(`wmic datafile where name='${queryPath}' get version`)
.then(exeVersion => {
    let versionSplit = exeVersion.stdout.split('\n');
    let versionString = versionSplit[1].trim(); // "2.0.1.0"
});


/**
 * @param {string} app command to execute
 * @returns {Promise<{stdout:string, stderr:string, code:number}>}
 */
function PromiseExec(app) {
    return new Promise((resolve, reject) => {
        let child = exec(app);
        let stdout = '';
        let stderr = '';

        child.addListener('error', reject);

        child.stdout.on('data', function (data) {
            stdout += data;
        });

        child.stderr.on('data', function (data) {
            stderr += data;
        });

        child.addListener('close', (code) => {
            resolve({ stdout, stderr,  code} );
        });
    });
}

Примечание. Я удалил некоторые проверки ошибок для ясности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...