Загрузка данных


@echo off
title VMware Configuration Editor
echo ========================================
echo VMware System Info Editor
echo ========================================
echo.

:: Путь к файлу конфигурации виртуальной машины
set "VMX_PATH=C:\VMs\YourVM\yourvm.vmx"

:: Проверка существования файла
if not exist "%VMX_PATH%" (
    echo Ошибка: Файл %VMX_PATH% не найден!
    echo.
    echo Пожалуйста, укажите путь к вашему .vmx файлу:
    set /p "VMX_PATH=Путь: "
    if not exist "%VMX_PATH%" (
        echo Файл не найден. Выход...
        pause
        exit /b 1
    )
)

echo Редактирование: %VMX_PATH%
echo.

:: Создание резервной копии
set "BACKUP_PATH=%VMX_PATH%.backup_%date:~-4,4%%date:~-7,2%%date:~-10,2%_%time:~0,2%%time:~3,2%%time:~6,2%"
set "BACKUP_PATH=%BACKUP_PATH: =0%"
copy "%VMX_PATH%" "%BACKUP_PATH%"
echo [OK] Резервная копия создана: %BACKUP_PATH%
echo.

:: Параметры для изменения
:: System Manufacturer = SMBIOS.systemManufacturer
:: System Model = SMBIOS.systemProductName
:: BIOS Version = SMBIOS.bios.version

echo Введите новые значения:
echo.

set /p "NEW_MANUF=System Manufacturer (например: Dell Inc.): "
set /p "NEW_MODEL=System Model (например: OptiPlex 7090): "
set /p "NEW_BIOS=BIOS Version (например: 1.0.0): "

echo.
echo ========================================
echo Применение изменений...
echo ========================================

:: Временный файл
set "TEMP_FILE=%TEMP%\vmx_edit_temp.vmx"

:: Редактирование или добавление параметров
(
    for /f "usebackq delims=" %%a in ("%VMX_PATH%") do (
        set "line=%%a"
        setlocal enabledelayedexpansion
        if "!line:SMBIOS.systemManufacturer=!" neq "!line!" (
            echo SMBIOS.systemManufacturer = "!NEW_MANUF!"
        ) else if "!line:SMBIOS.systemProductName=!" neq "!line!" (
            echo SMBIOS.systemProductName = "!NEW_MODEL!"
        ) else if "!line:SMBIOS.bios.version=!" neq "!line!" (
            echo SMBIOS.bios.version = "!NEW_BIOS!"
        ) else (
            echo !line!
        )
        endlocal
    )
    
    :: Добавляем параметры, если их нет
    if not defined found_manuf echo SMBIOS.systemManufacturer = "%NEW_MANUF%"
    if not defined found_model echo SMBIOS.systemProductName = "%NEW_MODEL%"
    if not defined found_bios echo SMBIOS.bios.version = "%NEW_BIOS%"
) > "%TEMP_FILE%"

:: Замена оригинального файла
move /y "%TEMP_FILE%" "%VMX_PATH%" > nul

echo.
echo [OK] Настройки обновлены!
echo.
echo Новые значения:
echo   Manufacturer: %NEW_MANUF%
echo   Model: %NEW_MODEL%
echo   BIOS Version: %NEW_BIOS%
echo.
echo ВНИМАНИЕ: 
echo   1. Виртуальная машина должна быть ВЫКЛЮЧЕНА!
echo   2. После изменений нужно перезагрузить виртуальную машину
echo.   
echo Дополнительные параметры в .vmx файле:
echo   SMBIOS.reflectHost = FALSE (должно быть FALSE)
echo   SMBIOS.useExternal = TRUE
echo.

pause