Solution 1 : utilisez UAT et modifiez le code Automation.cs
pour effectuer des opérations personnalisées après l'impression de BUILD SUCCESSFUL.
App=D:\UEProject\UE5test\ue5test1\Packer.bat,CommandLine=D:\UEProject\UE5test\ue5test1
Cette ligne de code est placée dans ProjectLauncher->Build->Paramètres de ligne de commande supplémentaires
CommandUtils.LogInformation("BUILD SUCCESSFUL");
for (int Index = 0; Index < CommandInfo.Arguments.Count; ++Index)
{
string app = "";
string commandLine = "";
string argument = CommandInfo.Arguments[Index];
// 提取 App 的值
if (argument.Contains("App="))
{
int startIndex = argument.IndexOf("App=") + 4;
int endIndex = argument.IndexOf(",", startIndex);
if (endIndex != -1 && endIndex > startIndex)
{
app = argument.Substring(startIndex, endIndex - startIndex);
}
}
// 提取 CommandLine 的值
if (argument.Contains("CommandLine="))
{
int startIndex = argument.IndexOf("CommandLine=") + 12;
int endIndex = argument.IndexOf(",", startIndex);
if (endIndex != -1 && endIndex > startIndex)
{
commandLine = argument.Substring(startIndex, endIndex - startIndex);
}
}
CommandUtils.LogInformation("Custom CommandLine: {0},{1}", app, commandLine);
if (!string.IsNullOrEmpty(app))
{
CommandUtils.Run(app, commandLine);
}
}
Option 2 : modifier RunUAT.bat
rem ## Run AutomationTool
:DoRunUAT
pushd %UATDirectory%
dotnet %UATExecutable% %*
:: 调取自定义的程序
:: call "D:\UEProject\UE5test\ue5test1\Packer.bat"
setlocal EnableDelayedExpansion
set "args=%*"
for /F "tokens=2 delims== " %%a in ("!args!") do (
set "filePath=%%~dpa"
echo !filePath!Packer.bat
call "!filePath!Packer.bat"
)
endlocal
popd
set RUNUAT_ERRORLEVEL=%ERRORLEVEL%
Le contenu du fichier batch ou du programme exe correspondant peut être personnalisé