Я хотел создать оператор if
и else
для кода, представленного ниже.Код должен работать следующим образом: при запуске пакетного кода он выяснит, был ли путь записан в файле addon.cfg
или нет.Если он еще не был записан, то командный файл запишет путь.Если путь присутствует, то он будет полностью удален.
Код пакета выглядит следующим образом:
@Echo Off
SetLocal EnableExtensions DisableDelayedExpansion
Set "Key=HKLM\SOFTWARE\Lockheed Martin\Prepar3D v4"
Set "Val=SetupPath"
For %%A In (Cmd Reg)Do Set "%%A=%SystemRoot%\System32\%%A.exe"
If Defined PROCESSOR_ARCHITEW6432 Set "Cmd=%SystemRoot%\SysNative\cmd.exe"
Set "Dir="
For /F "Tokens=2*" %%A In ('
""%Cmd%" /D /C ""%Reg%" Query "%Key%" /V "%Val%" 2^>Nul""')Do Set "Dir=%%~B"
If Not Defined Dir GoTo :EOF
If "%Dir:~-1%"=="\" Set "Dir=%Dir:~,-1%"
REM VARMA Scenery Designs Batch Script for Prepar3D V4
REM Add the current Folder to the Addon Library (add-on.cfg)
set args=-Configure: Category=Add-on Package, Operation=Add, FileLocation=ProgramData, Path=%cd%
start "" "%Dir%\Prepar3D.exe" "%args%"
Код if
и else
должен выглядеть примерно так:это:
if addon == ""
set args=-Configure: Category=Add-on Package, Operation=Add, FileLocation=ProgramData, Path=%cd%
else
set args=-Configure: Category=Add-on Package, Operation=Remove, FileLocation=ProgramData, Path=%cd%
Но я не уверен, какие значения / коды должны быть внутри ""
на if addon == ""
[Редактировать /]
Файл addon.cfg
находится в C:\ProgramData\Lockheed Martin\Prepar3D v4
.Пакетный файл будет искать файл addon.xml
(этот файл будет содержать некоторые детали, из которых Prepar3D должен искать файлы пейзажа) в том же месте, где размещен пакетный файл.Поэтому в приведенном выше коде путь записывается как Path=%cd%
.
Пример кода в файле addon.cfg
:
[Package.0]
PATH=F:\Flight Simulators\Addon\Scenery Making Tools\WMKM Model\WMKM Airport Design\Melaka International Airport (WMKM)\P3D V4\Melaka International Airport (WMKM)
ACTIVE=true
REQUIRED=false
Пример кода в файле addon.xml
:
<SimBase.Document Type="AddOnXml" version="4,0" id="add-on">
<AddOn.Name>VARMA Scenery Designs-(WMKM) Melaka International Airport</AddOn.Name>
<AddOn.Description>Scenery for (WMKM) Melaka International Airport by VARMA Scenery Designs</AddOn.Description>
<!--
add-on.xml will work "first read first in" such that the last component read will be on top.
-->
<AddOn.Component>
<Category>Scenery</Category>
<Path>scenery</Path>
<Name>VARMA Scenery Designs-WMKM scenery</Name>
</AddOn.Component>
</SimBase.Document>
Вы можете сослаться здесь для деталей add-on configuration file
с некоторыми примерами.