mirror of
https://github.com/ventoy/Ventoy.git
synced 2026-05-16 01:16:18 +00:00
Fix the boot issue for some WinPE iso.
This commit is contained in:
Binary file not shown.
Binary file not shown.
58
vtoyjump/build.bat
Normal file
58
vtoyjump/build.bat
Normal file
@@ -0,0 +1,58 @@
|
||||
@echo off
|
||||
chcp 65001
|
||||
echo ==============================================
|
||||
echo VS 命令行双架构编译脚本
|
||||
echo ==============================================
|
||||
|
||||
:: ====================== 【必须改这里】======================
|
||||
:: 1. 你的 VS 版本对应的 VsDevCmd.bat 路径(看下面的路径对照表)
|
||||
set "VS_DEV_CMD=%VS120COMNTOOLS%VsDevCmd.bat"
|
||||
:: 2. 你的 VS 解决方案文件名(.sln)
|
||||
set "SLN_FILE=vtoyjump.sln"
|
||||
:: ==========================================================
|
||||
|
||||
:: 初始化VS编译环境(必须第一步)
|
||||
echo 正在初始化 VS 编译环境...
|
||||
call "%VS_DEV_CMD%" -no_logo
|
||||
if %errorlevel% neq 0 (
|
||||
echo 错误:VS环境初始化失败!检查路径是否正确
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
:: ============== 编译 Release Win32 (x86) ==============
|
||||
echo.
|
||||
echo 正在编译:Release Win32
|
||||
MSBuild "%SLN_FILE%" /t:Build /p:Configuration=Release;Platform=Win32 /m
|
||||
if %errorlevel% neq 0 (
|
||||
echo 编译 Release Win32 失败!
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
|
||||
:: ============== 编译 Release x64 ==============
|
||||
echo.
|
||||
echo 正在编译:Release x64
|
||||
MSBuild "%SLN_FILE%" /t:Build /p:Configuration=Release;Platform=x64 /m
|
||||
if %errorlevel% neq 0 (
|
||||
echo 编译 Release x64 失败!
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
del ..\INSTALL\ventoy\vtoyjump32.exe
|
||||
del ..\INSTALL\ventoy\vtoyjump64.exe
|
||||
|
||||
copy Release\vtoyjump32.exe ..\INSTALL\ventoy\vtoyjump32.exe
|
||||
copy x64\Release\vtoyjump64.exe ..\INSTALL\ventoy\vtoyjump64.exe
|
||||
|
||||
|
||||
echo.
|
||||
echo ==============================================
|
||||
echo ✅ 2架构编译完成!
|
||||
echo ==============================================
|
||||
echo.
|
||||
pause
|
||||
|
||||
|
||||
@@ -2849,7 +2849,7 @@ int VentoyJump(INT argc, CHAR **argv, CHAR *LunchFile)
|
||||
goto End;
|
||||
}
|
||||
|
||||
// convert / to \\
|
||||
// convert '/'
|
||||
for (Pos = 0; Pos < sizeof(g_os_param.vtoy_img_path) && g_os_param.vtoy_img_path[Pos]; Pos++)
|
||||
{
|
||||
if (g_os_param.vtoy_img_path[Pos] == '/')
|
||||
@@ -2902,6 +2902,26 @@ End:
|
||||
return rc;
|
||||
}
|
||||
|
||||
static BOOL is_exe_need_recover(const char *prog_name)
|
||||
{
|
||||
if (_stricmp(g_prog_name, "winpeshl.exe") == 0)
|
||||
{
|
||||
// if setup.exe not exist, it's not a standard Windows ISO, maybe PE.
|
||||
if (!IsFileExist("X:\\setup.exe") && IsFileExist("ventoy\\%s", g_prog_name))
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (IsFileExist("ventoy\\%s", g_prog_name))
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
int real_main(int argc, char **argv)
|
||||
{
|
||||
@@ -2936,7 +2956,7 @@ int real_main(int argc, char **argv)
|
||||
|
||||
Log("LunchFile=<%s> CallParam=<%s>", LunchFile, CallParam);
|
||||
|
||||
if (_stricmp(g_prog_name, "winpeshl.exe") != 0 && IsFileExist("ventoy\\%s", g_prog_name))
|
||||
if (is_exe_need_recover(g_prog_name))
|
||||
{
|
||||
sprintf_s(NewFile, sizeof(NewFile), "%s\\VTOYJUMP.EXE", g_prog_dir);
|
||||
MoveFileA(g_prog_full_path, NewFile);
|
||||
|
||||
Reference in New Issue
Block a user