Verwendung von Kommandozeilenargumenten

Kommandozeilenargumente gibt es bereits seit der DOS-Zeit. Sie sind ein einfacher Weg einem Programm zusätzliche Werte zu übergeben und damit den Programmablauf zu beeinflussen. In der CONZEPT 16-Installationsroutine ist es beispielsweise möglich über Kommandozeilenargumente die komplette Installation zu automatisieren.


Es wäre falsch zu behaupten, dass moderne Software keine Kommandozeilenargumente verwendet oder benötigt. Die meisten Programme, auch die mit grafischer Oberfläche, bieten oft versteckte Optionen, welche über die Kommandozeile definiert werden können.

Kommandozeilenargumente werden hinter dem Kommando, bzw. dem Programmnamen, angegeben. Es gibt verschiedene Möglichkeiten ein Argument anzugeben. Für CONZEPT 16-Applikationen sind dabei zwei Arten besonders zu unterscheiden:

1. Argumente, die über den Namen definiert werden:

c16_?.exe /<Argumentname>=<Argumentwert>
c16_setup.exe /cpn_action=extract /cpn_cln=1 /dir=.

Die Installationsroutine extrahiert den Standard- und Advanced-Client in das aktuelle Verzeichnis.

Diese Variante hat den Vorteil, dass die Argumente über den Namen identifiziert werden. Die Reihenfolge spielt dabei keine Rolle.

Unter Windows wird der Name eines Arguments oft durch ‘-‘ oder ‘/‘ eingeleitet. Jedoch kann dies je nach Programm variieren. Ebenso müssen Name und Wert eines Arguments nicht unbedingt durch ein ‘=’ getrennt sein. Ein Argumentwert, der ein oder mehrere Leerzeichen enthält, muss durch Anführungszeichen umschlossen werden:

/path="C:\Program Files\MyApp.exe".

2. Argumente, die über die Position definiert werden:

c16_?.exe <Argumentwert1> <Argumentwert2> ... <ArgumentwertN>
c16_apgi.exe * CodeLibrary START

Der Client verbindet sich als Benutzer "START" mit der CodeLibrary auf dem lokalen Server. Die zweite Variante hat den Nachteil, dass es für den Benutzer nicht ersichtlich ist, welches Argument welche Bedeutung hat.

CONZEPT 16

Auch CONZEPT 16-Applikationen können Kommandozeilenargumente verarbeiten. Dazu steht der Befehl SysGetArg() zur Verfügung. Dem Befehl wird der Name des Arguments übergeben und liefert den Wert zurück (Variante 1).

Beispiel (Applikation im Debug-Modus starten)

c16_apgi.exe * Verwaltung USER /debug_mode=on
// Programm im Debug-Modus ausführen?
tDebug # SysGetArg('debug_mode') =^ 'on';
if (tDebug)
  ... // Programm im Debug-Modus starten

Wird das Argument nicht angegeben, liefert der Befehl einen Leerstring zurück.

Anwendungsbeispiel

Ein gebräuchlicher Einsatz ist die Startprozedur über ein Kommandozeilenargument definieren zu können. Dadurch kann ein „erfahrener Anwender“ über einen Benutzer unterschiedliche Funktionen ausführen. Insbesondere für den CONZEPT 16-Entwickler ist dies interessant, um z. B. spezielle Werkzeuge zu starten, ohne immer den Benutzer wechseln zu müssen.

sub ProcExecutable
(
  aProcName             : alpha(20);  // Prozedur
)
: logic;                              // Prozedur darf ausgeführt werden (true)
  local
  {
    tText               : handle;
    tExecutable         : logic;
  }
{
  tText # TextOpen(16);
  if (tText > 0)
  {
    // Prüfen ob Text existiert und ausgeführt werden darf
    tExecutable # tText->TextRead(aProcName, _TextProc | _TextNoContents) = _rOk and (
      aProcName =^ 'DebugClient' or
      aProcName =^ 'FTP'         or
      aProcName =^ 'LogFiles'    or
      aProcName =^ 'Manager'     or
      aProcName =^ 'XMLViewer'
    );
    tText->TextClose();
  }
  return (tExecutable);
}
main
()
  local
  {
    tProcStart          : alpha(20);
  }
{
  tProcStart # SysGetArg('proc_start');
  if (tProcStart != '')
  {
    if (ProcExecutable(tProcStart))
    {
      Call(tProcStart);
      return;
    }
  }
  StartApp();
}
Hinweis

Die folgenden Namen werden bereits von CONZEPT 16 verwendet, können aber auch mit dem Befehl SysGetArg() abgefragt werden:

  • /c16=<path>
    Pfad der Programmdateien
  • /c16cfg=<path\file>
    Speicherort der Konfigurationsdatei
  • /c16tmp=<path>
    Pfad für temporäre Dateien
  • /c16lang=DE|EN|TR|*U
    Anzeigesprache im Designer (Deutsch, Englisch, Türkisch, Abhängig vom Betriebssystem)
  • /c16splashon=y|n (Standard: y)
    Splash-Screen beim Starten anzeigen?
  • /load_user_profile=y|n (Standard: y)
    Benutzerprofil laden?

Klicken Sie hier, um die Nutzungsbedingungen für unseren Blog zu lesen.

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Leave the field below empty!

Wünsche, Fragen oder Feedback sind willkommen:

Nutzungsbedingungen der Kommentarfunktion im Blog

1. Allgemeines

Vectorsoft AG („Anbieter“) stellt für Internetnutzer („Nutzer“) auf der Website
vectorsoft.de einen öffentlichen Blog bereit. Der öffentliche Blog dient dem
Informations- und Gedankenaustausch. Die Nutzer, welche sich mit Beiträgen und
Kommentaren beteiligen, verpflichten sich dazu, die Blog-Nutzungsbedingungen
einzuhalten und tragen die Verantwortung für die Richtigkeit und Angemessenheit
sowie Freiheit von Rechtsverletzungen ihrer Beiträge. Mit Nutzung der
Kommentarfunktion in unserem Blog akzeptieren Sie diese Nutzungsbedingungen.

2. Netiquette

Wir bitten Sie von persönlichen Angriffen und Provokationen aufgrund anderer
Meinungen abzusehen. Bitte argumentieren Sie sachlich und bewegen Sie sich auf
der Basis einer konstruktiven Diskussionskultur. Ihr Kommentar sollte stets im
Zusammenhang mit dem jeweiligen Thema sein, um Ausschweifungen in andere
Themenbereiche zu vermeiden. Das mehrmalige Posten desselben Kommentars
oder mehrerer ähnlicher Kommentare ist nicht erlaubt.

3. Verbot rechtswidriger Inhalte

Mit Absenden Ihres Kommentars bestätigen Sie, dass Sie keine Urheberrechte oder andere Rechte Dritter verletzen. Volksverhetzende, rassistische Äußerungen, Anleitungen zu Straftaten und deren Verherrlichung, Gewaltdarstellungen, pornografische Inhalte und Äußerungen, die Persönlichkeitsrechte verletzen sind untersagt.

4. Keine Werbung

Die Nutzung der Kommentarfunktion ist für kommerzielle oder parteipolitische
Zwecke nicht erlaubt. Werbliche Beiträge aller Art werden von uns umgehend
gelöscht.

5. Angaben zum Namen

Bei der Eingabe Ihres Namens achten Sie auf die zuvor genannten Grundsätze.

6. Quellenangaben

Bitte geben Sie bei der beabsichtigten Veröffentlichung von Zitaten oder Beiträgen
Dritter die jeweiligen Quellen an und erläutern dessen Bezug zum Blogbeitrag.

7. Verstoß gegen die Nutzungsbedingungen

Beiträge, die gegen diese Richtlinie verstoßen werden umgehend gelöscht. Sollten
Sie selbst Verstöße bemerken, so senden Sie uns bitte den Link des betreffenden
Kommentars per E-Mail an . Wir weisen ausdrücklich daraufhin, dass wir einzelne Nutzer bei wiederholten oder schweren Verstößen gegen diese
Nutzungsbedingungen ausschließen werden.

Stand: Sept. 2024

Deine Trial Version - jetzt anfordern!

Teste yeet - unverbindlich und kostenfrei

IHRE EVALUIERUNGSLIZENZ - JETZT ANFORDERN!

TESTEN SIE DIE CONZEPT 16 VOLLVERSION - UNVERBINDLICH und KOSTENFREI

Melden Sie sich bei unserem Newsletter an

Anrede*
     
Zustimmung zur Datenverarbeitung gem. DSGVO*



WordPress Cookie-Hinweis von Real Cookie Banner