Parameter für Shell Interaktion aufsetzen

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von VaporiZed.

    Parameter für Shell Interaktion aufsetzen

    Hallo,
    ich habe hier eine Codestelle, die eine Batch Datei ausführen soll und dabei einen Pfad mitgegeben bekommt.

    Quellcode

    1. Shell("X:\...\theFileToRun.bat ""X:\TargetDir\" & """", AppWinStyle.Hide, True, )


    Ich würde den Code gerne aufräumen, aber wie tausche ich die Strings gegen Variablen aus? Ich muss gestehen, dass ich mit der Microsoft Doku nicht so ganz schlau wurde, wofür zb """" steht. Ich habe es erstmal so versucht:

    Quellcode

    1. Dim batPath As String = "X:\...\theFileToRun.bat "
    2. Dim dirPath As String = "X:\TargetDir\" & """"
    3. Shell(batPath dirPath, AppWinStyle.Hide, True, )


    Aber da meckert der Compiler, da dieser nur 1 Variable als Parameter erwartet. Wie kann ich den Code ordentlich auslagern, damit ich eine Konstante für die Batch Datei anlegen kann und den Pfad als Variable reingebe? Ich selbst komme eher aus der JavaScript Ecke oder C#, daher ist VB erstmal neu für mich.

    Danke im Voraus! :)

    *Thema verschoben* ~NoFear23m

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Nofear23m“ ()

    Wenn Du in VS (zumindest in VS19) in Extras -> Optionen -> Umgebung -> Schriftarten und Farben -> "Zeichenfolge - Escape-Zeichen" eine deutliche Farbe wählst, hilft Dir die IDE zumindest optisch weiter:

    Dieses """" steht für: Ein Anführungszeichen innerhalb des Strings.
    Man kann also schreiben:

    VB.NET-Quellcode

    1. Dim MeinStringOhneAlles = "" 'Kennzeichnung eines leeren Strings durch die 2 Anführungszeichen
    2. Dim MeinStringMitEinemAnführungszeichen = """" 'ergibt für den Stringinhalt: "
    3. Dim MeinStringMitZweiAnführungszeichen = """""" 'ergibt für den Stringinhalt: ""
    4. Dim MeinStringMitDreiAnführungszeichen = """""""" 'ergibt für den Stringinhalt: """
    5. Dim MeinStringMitEinemEinwortzitat = "Er sagte ""Nein!""" 'ergibt für den Stringinhalt: Er sagte "Nein!"

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.
    Von Stringinterpolation hab ich zwar nix geschrieben, aber ja, geht.
    Oder eben:
    Shell(batPath & dirPath, AppWinStyle.Hide, True, )
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.