我正在用Javascript(Node)编写程序。在这个程序中,我希望使用Windows Sigcheck工具获得可执行文件的版本号,但是它给了我"找不到匹配的文件。"
我可以从命令提示符运行Sigcheck,它运行正常: Sigcheck finds the executable, and the output is the executable's version number.
但是当我通过Node的child_process execSync()运行相同的命令时,Sigcheck找不到该文件。我运行这段代码:
let appVersionNumber = execSync('\\path\\to\\sigcheck.exe -n "C:\Program Files\Autodesk\Maya2017\bin\maya.exe"');
我得到了这个输出: "No matching files found"
如何在Node中运行Sigcheck以获取可执行文件的版本号?它肯定在运行Sigcheck,因为它正在显示横幅,但我不明白它为什么找不到可执行文件。任何帮助将不胜感激 - 谢谢!
答案 0 :(得分:0)
你也需要在param字符串中转义反斜杠:
let appVersionNumber = execSync('\\path\\to\\sigcheck.exe -n "C:\\Program Files\\Autodesk\\Maya2017\\bin\\maya.exe"');
否则它们只会被跳过(这是在JavaScript中字符串文字中处理斜杠的方式),你将得到错误的路径,没有sigcheck的文件,好吧,检查。
顺便说一句,如果我是你,我可能会将这些方案放入单独的变量中:const sigcheckPath = '\\path\\to\\sigcheck.exe';
const appPath = 'C:\\Program Files\\Autodesk\\Maya2017\\bin\\maya.exe';
let appVersionNumber = execSync(`${sigcheckPath} "${appPath}"`);