我从供应商那里获得了一个批处理文件,用于修补 Vista 计算机上的某些软件。我将使用 GPO 将其作为启动脚本推出。
我的问题是有些系统需要这个软件,有些则不需要。
我想在脚本的开头添加代码来查找 exe 是否存在,然后提取右键单击 exe、详细信息选项卡、“产品版本”字段时可查看的字符串。
请以评论的形式提出其他解决方案。我知道其他处理此问题的方法,并且已经准备好了几种。我愿意听取建议,但希望所有答案都针对这个特定问题。可以做到吗?如果可以,怎么做?
谢谢!-马修
答案1
您将需要一个名为 filever 的实用程序,它作为 Windows 的支持工具附带。 这是一个页面详细说明它的选项。
在批处理文件中,您可能会像这样使用它:
@IF NOT EXIST C:\PATH\TO\YOUR\APP.EXE GOTO END
@SET APPVER=3.14159
@\\FILESHARE\filever.exe "C:\PATH\TO\YOUR\APP.EXE" | findstr /i %APPVER% > nul
@IF %ERRORLEVEL% EQU 0 GOTO END
@\\FILESHARE\PATH\TO\YOUR\APP\Update.exe
:END
- 第一行检查您的应用程序是否存在。
- 第二行设置要修补的版本号到
- 第三行利用菲莱弗MS 的工具和内置查找字符串 工具来确定他们当前正在运行的版本,并将其与您希望他们运行的版本进行比较
- 第四行告诉他们,如果已经使用正确的版本,则跳过运行 Update.exe
- 第五行运行需要修补的用户的更新
- 最后一行是上面引用的 GOTO 点,结束批处理
答案2
你可以用 Powershell 轻松完成。例如:
if ([System.Diagnostics.FileVersionInfo]::GetVersionInfo("PathToExe").FileVersion -eq "1.1.0.0") {
.\DoPatch.bat
}
这将检查文件版本,如果它与您想要的版本匹配,它将执行您的批处理文件。