I’ve been tinkering with my script to pick out NPS,CFD, and SBS, and redone it several times now. I’d be concentrating on the files to check rather than the planes, and this led to some pain when trying to loop through planes, and their different files. I’ve refactored it so it now concentrates on the plane folder itself, so there is only one loop.
I’ve also tidied up the output so that it prints out a table, and tosses out missing values so as to avoid clutter. It works really well of the “Official” folder, but gets a bit messy if you include the top level folder above that. If you are like me you may have multiple backup “Community” folders that you have not sorted through, due to sim upgrades, so this led to many duplicate planes being found. Valid data, but messy, but avoidable if you store your backup “Community” folders outside the main sim folder.
In any case here is the code, with a sample of of its output below. On the back of this it looks like the DC3 now has NPS! Further edit, chopping out the guts of the loop, and turned it into a Function removing 20 lines.
cd 'D:\Flight Simulator\'
$fm_files = (Get-ChildItem -Recurse flight_model.cfg).DirectoryName
$plane_table = @([pscustomobject]@{Plane="";Model="";NPS="";CFD="";SBS=""})
Function FeatureCheck($content, $feature) {
if ($content | select-string $feature) {
$value = ($content | select-string $feature).ToString().Split("=")[1].Trim()
}
Else {
$value = $null
}
Return $value
}
foreach ($fm_file in $fm_files) {
$fm_content = get-content $fm_file\flight_model.cfg
$eng_content = Get-Content $fm_file\engines.cfg
$plane = $fm_file.Split("\")[-4]
$model = $fm_file.Split("\")[-1]
$CFD = FeatureCheck $fm_content "CFD_EnableSimulation"
$SBS = FeatureCheck $fm_content "fuselage_rigidity"
$NPS = FeatureCheck $eng_content "prop_mod_use_modern"
$plane_table += [pscustomobject]@{Plane=$plane;Model=$model;NPS=$NPS;CFD=$CFD;SBS=$SBS}
}
$plane_table | ft -AutoSize
Read-Host "Press Enter to quit"
Output looks like this:
Plane Model NPS CFD SBS
----- ----- --- --- ---
asobo-aircraft-208b-grand-caravan-ex Asobo_208B_GRAND_CARAVAN_EX 1
asobo-aircraft-a320-neo Asobo_A320_NEO
asobo-aircraft-b7478i Asobo_B747_8i
asobo-aircraft-b787-10 Asobo_B787_10
asobo-aircraft-baron-g58 Asobo_Baron_G58
asobo-aircraft-bonanza-g36 Asobo_Bonanza_G36
asobo-aircraft-c152 Asobo_C152 1
asobo-aircraft-c152-aerobat Asobo_C152_Aerobat
asobo-aircraft-c172sp-as1000 Asobo_C172sp_AS1000 1 1 30
asobo-aircraft-c172sp-as1000 Asobo_C172sp_AS1000_Floaters
asobo-aircraft-c172sp-as1000 Asobo_C172sp_AS1000_Skis
asobo-aircraft-c172sp-as1000 Asobo_C172sp_AS1000_TowPlane 1 1 30
asobo-aircraft-c172sp-as1000bak Asobo_C172sp_AS1000
asobo-aircraft-c172sp-classic Asobo_C172sp_classic
asobo-aircraft-c172sp-classic Asobo_C172SP_Classic_Floats
asobo-aircraft-c172sp-classic Asobo_C172SP_Classic_Skis
asobo-aircraft-cabri-g2 Asobo_Cabri_G2 1
asobo-aircraft-cap10c Asobo_Cap10C
asobo-aircraft-cj4 Asobo_CJ4 0
asobo-aircraft-da40-ng Asobo_DA40_NG
asobo-aircraft-da40-tdi Asobo_DA40_TDI
asobo-aircraft-da62 Asobo_DA62
asobo-aircraft-dg1001-e Asobo_DG1001E_Neo 1
asobo-aircraft-dr400 Asobo_DR400
asobo-aircraft-dv20 Asobo_DV20
asobo-aircraft-e330 Asobo_E330
asobo-aircraft-fa18e Asobo_FA18E
asobo-aircraft-flightdesignct Asobo_FlightDesignCT
asobo-aircraft-generic-airliner-quadengines Asobo_Generic_Airliner_QuadEngines
asobo-aircraft-generic-airliner-twinengines Asobo_Generic_Airliner_TwinEngines
asobo-aircraft-generic-piston-multiengines Asobo_Generic_Piston_MultiEngines
asobo-aircraft-generic-piston-singleengine Asobo_Generic_Piston_SingleEngine
asobo-aircraft-generic-privatejet Asobo_Generic_PrivateJet
asobo-aircraft-generic-turbo-multiengines Asobo_Generic_Turbo_MultiEngines
asobo-aircraft-generic-turbo-singleengine Asobo_Generic_Turbo_SingleEngine
asobo-aircraft-icon Asobo_Icon
asobo-aircraft-kingair350 Asobo_KingAir350 1
asobo-aircraft-longitude Asobo_Longitude 0 -1
asobo-aircraft-ls8 Asobo_LS8 1
asobo-aircraft-nxcub Asobo_NXCub
asobo-aircraft-pipistrel Asobo_Pipistrel
asobo-aircraft-pitts Asobo_Pitts
asobo-aircraft-savage-cub Asobo_Savage_Cub
asobo-aircraft-savage-shockultra Asobo_Savage_ShockUltra
asobo-aircraft-savage-shockultra Asobo_Savage_ShockUltra_Floats
asobo-aircraft-savage-shockultra Asobo_Savage_ShockUltra_Skis
asobo-aircraft-sr22 Asobo_SR22
asobo-aircraft-tbm930 Asobo_TBM930
asobo-aircraft-vl3 Asobo_VL3
asobo-aircraft-xcub Asobo_XCub
asobo-aircraft-xcub Asobo_XCub_Floats
asobo-aircraft-xcub Asobo_XCub_Skis
AssetGroups singleprop-empty
microsoft-aircraft-bell407 microsoft-aircraft-bell407 1 1
microsoft-aircraft-dc3 douglas-dc3 1 1 -1
microsoft-aircraft-dhc2 BlackbirdSims_DHC2_Floats 1
microsoft-aircraft-dhc2 BlackbirdSims_DHC2_Wheels 1
microsoft-aircraft-g-21 microsoft-aircraft-g-21 1 1
microsoft-aircraft-hughes-h4-hercules Microsoft_Hughes_H4_Hercules 1 0
microsoft-aircraft-jn4 microsoft-aircraft-jn4 1 1
microsoft-aircraft-pilatus-pc6 Microsoft_Pilatus_PC6_G950_Floats
microsoft-aircraft-pilatus-pc6 Microsoft_Pilatus_PC6_G950_Wheels
microsoft-aircraft-pilatus-pc6 Microsoft_Pilatus_PC6_Gauge_Skis
microsoft-aircraft-pilatus-pc6 Microsoft_Pilatus_PC6_Gauge_Wheels
microsoft-aircraft-spirit-of-st-louis Microsoft_Spirit_of_StLouis 1 0
microsoft-aircraft-wright-flyer Microsoft_Wright_Flyer