阻止从批处理文件启动的程序启动另一个程序

阻止从批处理文件启动的程序启动另一个程序

我正在尝试解决一个限制。为了完整起见,我将提供完整的背景信息。

在虚幻引擎中,每个虚幻项目(.uproject 文件)都与引擎/编辑器的特定版本或特定安装相关联。双击启动项目时,它会运行:

UnrealVersionSelector.exe /editor "C:\path\to\myproject.uproject"

随后会启动相关的引擎编辑器。UnrealVersionSelector 负责解析 .uproject 文件、查找正确的引擎并启动编辑器。

我的批处理文件中需要的是只是发动机的位置。我想在该文件夹中运行其他实用程序。不幸的是,没有选项可以仅打印引擎的位置。UnrealVersionSelector 的源代码是公开的,可以在此处找到:https://github.com/EpicGames/UnrealEngine/blob/release/Engine/Source/Programs/UnrealVersionSelector/Private/UnrealVersionSelector.cpp

我目前的计划:让批处理文件以特殊方式启动 UnrealVersionSelector,阻止它实际启动编辑器 - 然后使用失败的编辑器启动路径来获取我想要的信息。

这可以通过批处理文件来实现吗?

显然,我非常希望找到更好的方法或者我所忽略的一些明显的东西。

答案1

引擎存储在项目文件中的“引擎关联”字段中。如果不是引擎编号,则可以是引擎构建的 GUID。

注册表中有一个“查找表”,HKEY_CURRENT_USER/Software/Epic Games/Unreal Engine/Builds因此您可以将 GUID 与引擎构建对齐。

因此,如果您可以提取 GUID(例如:https://stackoverflow.com/questions/24943001/extracting-text-from-xml-file-via-batch-file),然后执行reg query,您可能已经得到了所需的东西。

相关内容