Variablen Übergabe in Befehl

  • hi @all,

    ich bin voll am verzweifeln...
    Ich habe eine Datei Config.au3. Diese beinhaltet die Variablen $unc und $freigabe. Diese sollen über eine erstellte GUI mit dem jeweiligen Wert gefüllt werden. Habe die Datei Config.au3 mittels #include in eine andere mit reingenommen. Diese Datei soll nun beispielsweise run($unc $freigabe) öffnen, nur leider bekomme ich das nicht hin. Kann mir jemand helfen?! Ich hoffe es :rolleyes:
    Oder gibt es eine andere Möglichkeit? Ich muss relativ flexibel sein mit den UNCs, da die sich immer ändern. Möchte halt nicht immer eine neue EXE erzeugen und alles Hardcodiert eintragen...
    Vielen Dank schon mal vorab...
    Dann legt mal los *lol*
    Gruß
    Marc

  • Hi,
    wenn du die Datei config.au3 includest bist du ja trotzden nicht flexibel.

    Vorschlag 1:

    Code
    IniRead ( "filename", "section", "key", "default" )

    Vorschlag 2:

    Code
    if cmdline[0]=2 then 
      $unc=cmdline[1]
      $freigabe=cmdline[2]
    else
      msgbox(16,"Error","Ungültige eingabe..."
    endif

    Das zweite Bsp. kannst du dann so aufrufen: "deinfile.exe \\uncpfad freigabepfad".

    eddy_erpel

  • Hi,

    danke für deine Antwort. Also ich hab eine GUI mit der ich Dateien kopieren muss. Diese Dateien werden auf ein Share im Netzwerk kopiert. Ich will das ich in der GUI den Share eintrage und die Dateien dann dort hin kopiert werden bzw. auch aufgerufen werden. Bsp: FileCopy("$unc\$freigabe") Das mit cmdlines raff ich noch nicht so ganz...steh ein bissel aufm Schlauch :(

    Noch eine generelle Sache:
    Ich habe z.B. eine Variable $Raum. Ich will mit FileOpen eine txt Datei erzeugen die heißen soll $Raum.txt. Geht das, wenn ja wie?! Und halt noch mein anderes "Problem" (für euch wahrscheinlich keins, aber für mich :teufel:)
    Vielen Dank vorab...

    Einmal editiert, zuletzt von hessebou (7. Juli 2006 um 11:24)

  • Hi,
    das mit Comandline ist echt einfach.

    Wenn Du ein Programm per Komandozeile aufrufst kannst Du mit Leerzeichen getrennt Parameter übergeben:
    BSP:

    c:>test.exe parameter1 parameter2

    Denn du test.exe so programierst das die Parameter ausgelesen werden, kannst Du diese weiterverarbeiten

    Mit z.B Array Display zeigst Du die Parameter an.
    Probier es einfach mal aus.

    BSP:

    Code
    _ArrayDisplay($CMDLINE,"")

    Gruß
    Wolke

  • Hi,

    danke werds mal probieren.
    Wie kann ich denn z.B. wie oben beschrieben eine Textdatei erzeugen die heißt $Raum.txt (natürlich den Wert von $Raum :) )
    Habs so versucht
    FileOpen($raum".txt,1) allerdings funzt das nicht :(
    Da muss es doch ein weg geben...

  • Hi,
    etwa so sollte es gehen:

    Code
    $handle=FileOpen($raum &".txt",1)

    Poste einmal den bisherigen Code wegen dem anderen Problem...
    eddy_erpel

    Einmal editiert, zuletzt von Eddy_Erpel (7. Juli 2006 um 11:56)

  • Hi,

    also so funzt es leider auch nicht, er erzeugt dann eine Textdatei die heißt 6.txt ?! Keine ahnung was der macht. Mein bisheriger Code ist:

    Bin noch mittendrin am basteln. Diese Tool soll am Ende Dateien auf ein Share kopieren, das LoginScript editieren, 2 Batch Dateien erzeugen, einen Unterordner für jeden Raum und eine Computerliste anlegen. Ich weis da fehlt noch einiges :)
    PS: Das Forum ist echt spitze. Nochmals Danke an euch...

    EDIT:
    Das Problem mit $raum hab ich gelöst es hat GUICtrlRead gefehlt *kopf hau*

    Einmal editiert, zuletzt von hessebou (7. Juli 2006 um 12:16)

  • Hi,
    der macht ja nur, was du ihm gesagt hast. Ohne GUICtrlRead gibt er die controlID zurück und nicht den enthaltenen Text. Zeile 37 müsste so lauten:

    Code
    $handle=FileOpen(GUICtrlRead($raum) &".txt",1)


    edit: @hessebou habe gerade gesehen, dass du es auch gesehen hast
    eddy_erpel

    Einmal editiert, zuletzt von Eddy_Erpel (7. Juli 2006 um 12:28)

  • Nächstes Problem :) *wie gesagt steh ein bissel aufm Schlauch heute :-)* Die erzeugte Textdatei soll nun in den dafür erstellten Ordner verschoben werden. Ich hab Probleme *lol*

  • Was ist $raum_read???? Ein Verzeichnis( C:\) oder ein FilePfad (C:\test.txt)?
    Damit DirCreate funktioniert wie du es möchtest müsste es ein Verzeichnis sein (Sonst macht er ein Verzeichnis c:\test.txt\). Aber dann kann FileMove unmöglich funktionieren, da dann der Filename fehlt, oder du eine Wildcard vergessen hast ("*.txt")
    Weshalt legtst du die Datei denn nicht gleich im Zeilverzeichnis an?

    eddy_erpel

    Einmal editiert, zuletzt von Eddy_Erpel (7. Juli 2006 um 13:11)

  • $raum_read ist GUICtrlRead($raum). Habe mir das in eine Variable speichern lassen.
    Alles klar hat gefunzt...hab sie direkt ins Verzeichnis erstellen lassen. Wiedermal vielen Dank.
    Ich werde noch öfters kommen :schild4: