CLI-Beispiele
Übersetzung der englischen Originalseite für OmsiLaunch 0.1.0-beta3. Maßgeblich ist die englische Seite: Bei Abweichungen gelten die englische Seite und der Code.
Minimale, korrekte Aufrufe von OmsiLaunch.exe für OmsiLaunch 0.1.0-beta3, jeweils mit dem erwarteten Exitcode des Prozesses und einem Hinweis darauf, was geändert und wiederhergestellt wird. Jedes Beispiel wird, sofern nicht anders angegeben, aus dem OMSI-Installationsstammverzeichnis (<OMSI_PATH>) ausgeführt; die Syntax ist in der CLI-Referenz definiert, die Exitcodes unter Exitcodes. --json kann jedem Befehl hinzugefügt werden, um das strukturierte Envelope zu erhalten.
Konventionen#
- Ändert: Dateien oder OMSI-Zustand, die der Befehl verändert. „Sitzungs-Overlay“ bezeichnet eine Datei, die als Snapshot in die Transaktion aufgenommen, vor dem Start von OMSI angewendet und beim Ende der Sitzung Byte für Byte wiederhergestellt wird.
- Wiederhergestellt: was beim Ende der Sitzung (normaler Stopp, Ctrl+C, Tray,
session stop,/observe-seconds) oder durch die Recovery (Absturzwiederherstellung) rückgängig gemacht wird. - Runtime-Schreibvorgänge (
time set,camera set,scripts variable set,vehicles spawn) ändern nur den Speicher von OMSI; sie werden nie rückgängig gemacht, da OMSI beim Stopp beendet wird. - Platzhalter:
<OMSI_PATH>ist die OMSI-2-Installation, die das OmsiLaunch-Paket enthält (zum BeispielC:\OMSI 2);<OTHER_OMSI_PATH>eine andere Installation;<SPEC_PATH>und<ITX_PATH>eine eigene LaunchSpec-Datei bzw. ein eigenes Internettexturen-Profil;<HANDLE>ist ein Handle, das vom vorangehendenlist- odercreate-Befehl ausgegeben wurde, und<BASE64>sind Base64-kodierte Pixeldaten. Jeder andere Wert ist ein Literal, das auf einer Standardinstallation von OMSI 2 funktioniert (grundorf-quickist das auf dieser Seite definierte Beispielprofil). - Setzen Sie einen Pfad mit Leerzeichen in Anführungszeichen und beenden Sie einen Pfad in Anführungszeichen nicht mit
\(die Windows-Argumentauswertung macht aus\"ein literales Anführungszeichen):"C:\OMSI 2", nicht"C:\OMSI 2\". - Jede Befehlszeile auf dieser Seite wird vom Dokumentations-Gate geparst (
tests/OmsiLaunch.DocumentationTests, Gateexamples); die Beispiele zu Identität, Inhaltserkennung, Planung und Client wurden außerdem gegen eine echte Installation ausgeführt (research/reports/OMSILAUNCH-BETA3-FINAL-DOCUMENTATION-AUDIT.md).
Identität und Inhaltserkennung (keine Sitzung)#
OmsiLaunch.exe /versionExit 0. Gibt product, version (0.1.0-beta3), protocol_version (0.1), supported_family aus. Ändert nichts.
OmsiLaunch.exe profiles --jsonExit 0. Listet die unterstützten Omsi.exe-Hashes und ihren Validierungsstatus auf. Ändert nichts.
OmsiLaunch.exe capabilities --json
OmsiLaunch.exe help timeExit 0. Öffentlicher Capability-Katalog; help <family> filtert ihn. Ändert nichts.
OmsiLaunch.exe detect
OmsiLaunch.exeExit 0 (beide Formen sind identisch). Meldet laufende Omsi.exe-Prozesse und ob ein OmsiLaunch-Eigentümer für diese Installation antwortet. Ändert nichts.
OmsiLaunch.exe /list:Maps
OmsiLaunch.exe /list:Entrypoints /map:maps\Grundorf\global.cfg
OmsiLaunch.exe /list:Repaints /vehicle-scope:Vehicles\MAN_SD200\MAN_SD77.bus
OmsiLaunch.exe "<OMSI_PATH>" /list:SituationsExit 0 (2 bei einer unbekannten Kategorie). Reine Leseerkennung; Junction-Zyklen werden übersprungen. Ändert nichts. Die hier ausgegebenen Identity-Werte sind exakt die Zeichenfolgen, die /map, /saved, /vehicle-scope und eine LaunchSpec erwarten (zum Beispiel maps\Grundorf\global.cfg, situations\Linie 5.osn).
Planung und Validierung#
OmsiLaunch.exe /new /map:maps\Grundorf\global.cfg /entrypoint-index:1 /planExit 0, wenn der Plan READY ist, 1 bei NOT RUNNABLE (zum Beispiel OL_E_UNSUPPORTED_BUILD, OL_E_MAP_NOT_FOUND, OL_E_ENTRYPOINT_REQUIRED). Ändert nichts; OMSI wird nicht gestartet.
OmsiLaunch.exe /new /map:maps\Grundorf\global.cfg /entrypoint-index:1 /validate --jsonExit 0/1 wie oben; /validate ist ein Alias von /plan. Das JSON ist der unveränderte SessionPlan (TouchedFiles, PlannedMutations, Diagnostics, IsRunnable).
OmsiLaunch.exe /new /map:maps\Grundorf\global.cfg /entrypoint-index:1 /date:2026-09-20 /planExit 1. /date, /time, /year, /weather* und Spielerfahrzeug-Flags werden akzeptiert, aber von diesem Build nicht angewendet; der Plan enthält OL_E_CAPABILITY_UNAVAILABLE und ist nicht ausführbar.
OmsiLaunch.exe /last /planExit 1. LAST_MAP_STATE ist für dieses Profil nicht verfügbar (OL_E_CAPABILITY_UNAVAILABLE).
Sitzungen starten (Eigentümermodus)#
OmsiLaunch.exe /new /map:maps\Grundorf\global.cfg /entrypoint-index:1Exit 0, wenn die Sitzung mit Completed endet, 1 bei Failed oder einem nicht ausführbaren Plan. Ändert: Sitzungs-Overlays GUI\NewSplashscreen_ENG.bmp und GUI\NewSplashscreen_<lang>.bmp (das verwaltete Startbild ist der Standard), die Behandlung von closecheck, die Start-Übergabe. Wiederhergestellt: jedes Overlay, Byte für Byte, wenn die Sitzung endet. Die Konsole bleibt verbunden, bis OMSI sich beendet, „End session“ im Tray bestätigt wird, ein Client session stop sendet oder Ctrl+C gedrückt wird.
OmsiLaunch.exe /new /map:maps\Grundorf\global.cfg /entrypoint-index:1 /observe-seconds:8Exit 0. Wie oben, aber die Sitzung wird 8 s nach Erreichen von Running beendet (früher bei einem Stopp über Tray/Pipe). Wird von Validierungsskripten verwendet.
OmsiLaunch.exe "/saved:situations\Linie 5.osn"Exit 0/1. SAVED_SITUATION: Karte, Uhrzeit und Position stammen aus der .osn (situations\Linie 5.osn wird mit OMSI 2 ausgeliefert und startet auf Berlin-Spandau mit einem Spielerbus). Der Wert ist die von /list:Situations ausgegebene Situationsidentität (relativ zur Installation, ohne Beachtung der Groß-/Kleinschreibung); ein reiner Dateiname wie Linie 5.osn wird nicht aufgelöst (OL_E_SITUATION_NOT_FOUND, Exit 1). /map oder /entrypoint-index zusammen mit /saved wird mit Exit 2 abgelehnt. Änderungen und Wiederherstellung wie bei NEW_MAP. OMSI selbst schreibt die Karte der Situation in options.cfg [last_map]; dieser Schreibvorgang von OMSI wird nicht rückgängig gemacht, sofern nicht ein /set die Datei options.cfg überlagert (siehe Transaktionen und Recovery).
OmsiLaunch.exe /new /map:maps\Grundorf\global.cfg /entrypoint-index:1 /set:traffic.randomVehicles=150 /set:traffic.humans=200 /set:graphics.maxFPS=60Exit 0. Ändert: options.cfg (Sitzungs-Overlay, semantischer Token-/Vektor-Patch; CP1252-Bytes bleiben erhalten) sowie die Startbild-Overlays. Wiederhergestellt: options.cfg und die Startbilddateien exakt (RV-005, RV-006). /set:graphics.texture=... endet mit Exit 2 (OL_E_SETTING_NOT_WRITABLE); /set:foo=1 endet mit Exit 2 (OL_E_UNKNOWN_SETTING).
OmsiLaunch.exe /new /map:maps\Grundorf\global.cfg /entrypoint-index:1 /splash:UnsetExit 0. Ändert: kein Startbild-Overlay; nur die Start-Übergabe und die Behandlung von closecheck. Wiederhergestellt: für das Startbild ist nichts wiederherzustellen.
OmsiLaunch.exe /new /map:maps\Grundorf\global.cfg /entrypoint-index:1 /splash:Managed /splash-language:PTB /splash-assets:.omsilaunch\assets\my-splashExit 0 (1 mit OL_E_SESSION_PRESENTATION_INVALID, wenn das Verzeichnis oder eine BMP fehlt oder nicht 640x480 mit 24 Bit ist). Ändert: GUI\NewSplashscreen_ENG.bmp und GUI\NewSplashscreen_PTB.bmp aus dem benutzerdefinierten Verzeichnis (Sitzungs-Overlay). Wiederhergestellt: beide Dateien exakt.
OmsiLaunch.exe /new /map:maps\Grundorf\global.cfg /entrypoint-index:1 /internet-textures:DisabledExit 0. Ändert: nichts auf dem Datenträger außer den Startbild-Overlays; der prozessinterne Downloader wird für die Sitzung unterdrückt.
OmsiLaunch.exe /new /map:maps\Grundorf\global.cfg /entrypoint-index:1 /internet-textures:Override /internet-textures-profile:<ITX_PATH>Exit 0 (2 mit OL_E_ITX_PROFILE_REQUIRED, wenn das Profil fehlt; 1 bei einem ungültigen Profil oder einem Ziel außerhalb von Texture\). Ändert: Texture\standard.itx (Sitzungs-Overlay); jedes im Profil aufgeführte Ziel und Texture\standard.ipr sind Sitzungslöschungen. Wiederhergestellt: Overlay entfernt, gelöschte Originale wiederhergestellt; Dateien, die OMSI während der Sitzung unter diesen Pfaden erstellt hat, werden als Nebenprodukte der Sitzung entfernt.
OmsiLaunch.exe /new /map:maps\Grundorf\global.cfg /entrypoint-index:1 /startup-timeout:300Exit 0. Wartet bis zu 300 s (+5 s) auf Running statt der standardmäßigen 180 s. /shutdown-timeout:60 wird akzeptiert, hat in diesem Build aber keine Wirkung.
Vordefiniertes Sitzungsprofil#
Profildatei <OMSI_PATH>\.omsilaunch\session-profiles\grundorf-quick\profile.yaml:
schema: omsilaunch.session-profile/v1
id: grundorf-quick
name: Grundorf quick start
author: Example
version: "1.0"
compatibility:
maps:
- maps\Grundorf\global.cfg
new:
map: maps\Grundorf\global.cfg
entrypoint-index: 1
presets:
- index: 1
id: low
name: Low detail
settings:
graphics.maxFPS: 30
graphics.tileDistance: 3OmsiLaunch.exe /predefined-profile:grundorf-quick /predefined-profile-index:1 /newExit 0. Ändert: options.cfg (Einstellungen der Voreinstellung, Sitzungs-Overlay) und die Startbild-Overlays. Wiederhergestellt: alle davon. Das Hinzufügen von /map:... oder /set:graphics.maxFPS=60 endet mit Exit 2 (OL_E_SESSION_PROFILE_OVERRIDE_CONFLICT); das Weglassen von /predefined-profile-index endet mit Exit 2 (OL_E_SESSION_PROFILE_PRESET_NOT_FOUND). Das mitgelieferte Beispiel .omsilaunch\examples\session-profiles\rmg-leste\profile.yaml zeigt das vollständige Schema, aber im Auslieferungszustand fordert sein Block new: die Angaben date, time und weather an, die dieser Build nicht anwenden kann: Die Planung mit /new ergibt NOT RUNNABLE (OL_E_CAPABILITY_UNAVAILABLE); entfernen Sie diese Schlüssel vor der Verwendung.
LaunchSpec-Datei#
OmsiLaunch.exe /spec:.omsilaunch\examples\release-session.example.json /plan --json
OmsiLaunch.exe /spec:.omsilaunch\examples\release-session.example.jsonExit 0/1. Das mitgelieferte Beispiel wählt Grundorf, Einstiegspunkt-Index 1, verwaltetes Startbild und native Internettexturen aus; RootPath: "." wird zum Verzeichnis der ausführbaren Datei aufgelöst. Änderungen wie beim expliziten NEW_MAP-Beispiel. Eine Spec mit einer unbekannten Eigenschaft endet mit Exit 2 (OL_E_SPEC_UNKNOWN_PROPERTY: $.Path); eine fehlende Datei endet mit Exit 6 (OL_E_SPEC_NOT_FOUND); eine Datei über 1 MiB endet mit Exit 2 (OL_E_SPEC_TOO_LARGE).
OmsiLaunch.exe "<OTHER_OMSI_PATH>" /spec:<SPEC_PATH> /startup-timeout:120Exit 0/1. Die explizite Installation <OTHER_OMSI_PATH> hat Vorrang vor dem RootPath der Spec; /startup-timeout überschreibt Behavior.StartupTimeoutSeconds der Spec nur, weil es angegeben wurde.
Stiller (losgelöster) Start#
OmsiLaunch.exe /silent /new /map:maps\Grundorf\global.cfg /entrypoint-index:1Exit 0, sobald OmsiLaunchW.exe gestartet wurde ({"delegated": true, "host_process_id": <pid>}); 7, wenn OmsiLaunchW.exe fehlt (OL_E_WINDOWS_HOST_MISSING) oder nicht gestartet werden konnte. Der Launcher kehrt sofort zurück und hält weder die Konsole noch die Pipes des Aufrufers offen: Ein Skript, das seine Ausgabe erfasst, erhält sofort das Dateiende (Runtime-Closure T04). Die Sitzung selbst läuft in OmsiLaunchW.exe: keine Konsolenausgabe, Fehler als Meldungsfenster, Tray-Symbol verfügbar. Prüfen Sie den Fortschritt mit session status, events watch und .omsilaunch\diagnostics\<sessionId>-host.log. Vollständige Referenz: OmsiLaunchW.exe.
Eine laufende Sitzung steuern (Client-Modus)#
Führen Sie diese Befehle aus demselben Installationsverzeichnis aus, während ein Eigentümer läuft. Jeder endet mit Exit 4 (OL_E_NO_ACTIVE_SESSION), wenn kein Eigentümer antwortet, und mit 7 bei einem Steuerungsfehler.
OmsiLaunch.exe session status --jsonExit 0. Gibt SessionId, State (14 = Running), Diagnostics, RuntimeEvents zurück. Ändert nichts.
OmsiLaunch.exe events read --json
OmsiLaunch.exe events watchExit 0 (events watch läuft bis Ctrl+C). Begrenzte Runtime-Ereignisse (gameplay.entered, D3D-Lebenszyklusereignisse, ...). Ändert nichts.
OmsiLaunch.exe session stopExit 0 ({"accepted": true, "session_id": "..."}). Fordert den kanonischen Stopp an: OMSI wird beendet, die Overlays werden vom Eigentümer wiederhergestellt, das Journal wird gelöscht. Der Client kehrt sofort zurück; der Eigentümerprozess beendet sich nach der Wiederherstellung.
Runtime-Lesevorgänge#
OmsiLaunch.exe time get
OmsiLaunch.exe weather get
OmsiLaunch.exe weather actual get
OmsiLaunch.exe map get
OmsiLaunch.exe camera get
OmsiLaunch.exe player get
OmsiLaunch.exe timetable get
OmsiLaunch.exe timetable lines list
OmsiLaunch.exe drivers list
OmsiLaunch.exe tickets get
OmsiLaunch.exe vehicles summary
OmsiLaunch.exe humans summaryExit 0 mit dem RuntimeCommandResult (Succeeded, Values) im Envelope. Ändert nichts. Timeout 8 s (OL_E_RUNTIME_REQUEST_TIMEOUT, Exit 7).
OmsiLaunch.exe vehicles list
OmsiLaunch.exe vehicles get --handle=rv-000001
OmsiLaunch.exe hof get --handle=rv-000001
OmsiLaunch.exe constants list --handle=rv-000001
OmsiLaunch.exe constants get --handle=rv-000001 --name=antrieb_getr_version
OmsiLaunch.exe curves list --handle=rv-000001
OmsiLaunch.exe curves evaluate --handle=rv-000001 --name=retarder_stufe1 --x=0
OmsiLaunch.exe scripts variable list --handle=rv-000001
OmsiLaunch.exe scripts variable get --handle=rv-000001 --name=Refresh_Strings
OmsiLaunch.exe scripts string list --handle=rv-000001
OmsiLaunch.exe scripts string get --handle=rv-000001 --name=act_route
OmsiLaunch.exe humans list
OmsiLaunch.exe humans get --handle=hb-000001Exit 0; 2, wenn ein erforderliches Argument fehlt (OL_E_RUNTIME_ARGUMENT_REQUIRED, gemeldet, bevor die Anfrage gesendet wird); 7, wenn das Plugin die Anfrage ablehnt: OL_E_RUNTIME_OPERATION_FAILED mit dem konkreten Grund in Values.detail, zum Beispiel OL_E_RUNTIME_OBJECT_HANDLE_STALE für ein Handle, das nicht mehr dasselbe Objekt bezeichnet, oder OL_E_RUNTIME_CONSTANT_NOT_FOUND. Handles sind sitzungsbezogen und stammen aus dem vorangehenden list. Variablen-, Konstanten- und Kurvennamen werden von jedem Fahrzeugmodell definiert: Entnehmen Sie sie dem Ergebnis von list. Die obigen Namen wurden für rv-000001 aufgelistet, den Spielerbus einer Sitzung mit situations\Linie 5.osn. Ändert nichts.
OmsiLaunch.exe /runtime:timetable.track-entries.list
OmsiLaunch.exe /runtime:vehicle.constant.get /runtime-arg:handle=rv-000001 /runtime-arg:name=antrieb_getr_versionExit 0. Operationen ohne hierarchische Route – oder jede Route – lassen sich über die Operations-ID ansprechen. timetable.track-entries.list ist eine begrenzte Liste: Auf situations\Linie 5.osn gab sie 137 von 825 Einträgen mit truncated=true zurück (Runtime-Nachtest des Dokumentationsaudits). Ändert nichts.
Runtime-Schreibvorgänge#
OmsiLaunch.exe time set --minute=30Exit 0. Ändert die Uhr von OMSI im Speicher (validiert: Schreiben, Zurücklesen, Wiederherstellen durch ein zweites time set). Wird beim Stopp nicht rückgängig gemacht.
OmsiLaunch.exe camera set --field_of_view=50
OmsiLaunch.exe camera lock --family=0 --preset=1
OmsiLaunch.exe camera unlockExit 0 (2, wenn --family bei camera lock fehlt). Ändert den Kamerazustand für die Sitzung. camera lock benötigt ein PlayerVehicle (zum Beispiel eine /saved-Sitzung); in einer /new-Sitzung im Headless-Betrieb schlägt es fehl (OL_E_RUNTIME_PLAYER_VEHICLE_UNAVAILABLE in Values.detail). Sperren und Entsperren wurden mit einer gespeicherten Situation zur Laufzeit validiert (Familien 0, 2 und 1 mit Zurücklesen der Kamera). Wird beim Stopp nicht rückgängig gemacht; die Sperrrichtlinie endet mit der Sitzung.
OmsiLaunch.exe scripts variable set --handle=rv-000001 --name=Refresh_Strings --value=1Exit 0 (2, wenn handle, name oder value fehlt). Ändert eine numerische Skriptvariable dieses Fahrzeugs. Wird nicht rückgängig gemacht.
OmsiLaunch.exe weather set --wind_speed=1Exit 7. Wird immer mit OL_E_RUNTIME_SETTING_NOT_PERSISTENT abgelehnt; nichts wird geändert.
Spawn#
OmsiLaunch.exe vehicles spawn --model=Vehicles\MAN_SD200\MAN_SD77.bus
OmsiLaunch.exe vehicles place-randomExit 0 mit dem neuen rv-NNNNNN-Handle in Values (2, wenn --model fehlt; 7 bei OL_E_MAKEVEHICLE_BUS_NOT_FOUND, OL_E_MAKEVEHICLE_DELTA_ZERO, OL_E_MAKEVEHICLE_DELTA_MULTIPLE, OL_E_RUNTIME_BUS_IDENTITY_INVALID). Client-Timeout 30 s. Ändert die Sammlung der Straßenfahrzeuge (ein Fahrzeug hinzugefügt); weist das Spielerfahrzeug nicht zu. Wird nicht rückgängig gemacht; das Fahrzeug verschwindet beim Stopp zusammen mit OMSI.
D3D-Texturen#
OmsiLaunch.exe /runtime:d3d.status
OmsiLaunch.exe /runtime:d3d.texture.create --width=8 --height=8 --format=A8R8G8B8 --levels=1
OmsiLaunch.exe /runtime:d3d.texture.describe --handle=<HANDLE> --level=0
OmsiLaunch.exe /runtime:d3d.texture.update --handle=<HANDLE> --level=0 --x=0 --y=0 --width=8 --height=8 --pixels_base64=<BASE64>
OmsiLaunch.exe /runtime:d3d.texture.release --handle=<HANDLE><HANDLE> ist der von create ausgegebene handle-Wert (d3dtex-<session id>-<16 hex digits>). <BASE64> muss für die 32-Bit-Formate zu width * height * 4 Bytes dekodieren (8 x 8 x 4 = 256 Bytes) und zu höchstens 48 KiB. Exit 0; 2 bei fehlenden erforderlichen Argumenten; 7 bei OL_E_D3D_INVALID_TEXTURE_FORMAT, OL_E_D3D_INVALID_PIXEL_BUFFER, OL_E_D3D_RESOURCE_RELEASED (zweite Freigabe oder Beschreiben nach der Freigabe), OL_E_D3D_STALE_RESOURCE_HANDLE (ein Handle aus der Zeit vor einem Geräte-Reset oder aus einer anderen Sitzung), OL_E_D3D_RESET_IN_PROGRESS, OL_E_D3D_NOT_READY, OL_E_D3D_DEVICE_LOST. Erstellt GPU-Ressourcen, die der Sitzung gehören; sie werden explizit oder beim Ende von OMSI freigegeben. Es werden keine Dateien berührt.
Einzelne Runtime-Operation auf Eigentümerseite#
OmsiLaunch.exe /new /map:maps\Grundorf\global.cfg /entrypoint-index:1 /runtime:time.read /observe-seconds:5Exit 0. Startet eine Sitzung, führt time.read nach Running einmal aus (Timeout 5 s), schreibt .omsilaunch\diagnostics\<sessionId>-runtime-operation.json, läuft 5 s weiter, stoppt und stellt wieder her. Ein Runtime-Fehler wird als runtime_error ausgegeben und beendet die Sitzung nicht.
Recovery#
OmsiLaunch.exe /recovery-status --jsonExit 0: {"pending": false, ...}, wenn kein Journal existiert, {"pending": true, "recovered": false}, wenn eines existiert. Exit 7 (OL_E_INSTALLATION_BUSY), solange ein Eigentümer die Installation hält. Ändert nichts.
OmsiLaunch.exe /recover --jsonExit 0, wenn nichts ausstand oder die Wiederherstellung abgeschlossen wurde (recovered: true; diagnostics kann restore.session-artifact-removed und OL_W_RESTORE_FOREIGN_FILE_RETAINED enthalten); Exit 8, wenn das Journal ausstand und weiterhin aussteht (OL_E_RECOVERY_BACKUP_CORRUPT, OL_E_RECOVERY_ABSENT_OWNERSHIP_MISMATCH, OL_E_RECOVERY_ABSENT_OWNERSHIP_UNVERIFIED, OL_E_RECOVERY_JOURNAL_REMOVE_FAILED); Exit 7, solange ein Eigentümer oder das im Journal erfasste OMSI die Installation hält (OL_E_INSTALLATION_BUSY); Exit 10 (OL_E_INTERNAL), wenn die wiederhergestellten Bytes die Prüfung nicht bestehen (Restore hash mismatch oder Restore presence mismatch; das Journal bleibt ausstehend). Ändert: stellt jede im Journal erfasste Datei aus .omsilaunch\backup\<sessionId>\ wieder her, nachdem ihr SHA-256 geprüft wurde, und löscht anschließend das Journal und das Backup-Verzeichnis. Wird mit OL_E_INSTALLATION_BUSY verweigert, solange das im Journal erfasste Omsi.exe noch aktiv ist (Runtime-Closure S04, S04b, F01).
Schnellprüfung des Exitcodes (PowerShell)#
& .\OmsiLaunch.exe /new /map:maps\Grundorf\global.cfg /entrypoint-index:1 /plan --json | Out-Null
$LASTEXITCODE # 0 = READY, 1 = NOT RUNNABLE, 2 = bad arguments