Variable an PS Script übergeben

  • Hallo liebe Scripter,

    ist es möglich, eine Pfad Variable aus einem Autoit Script ($path1) an ein PS Script zu übergeben, welches ich über folgenden Aufruf ausführe:

    $CmdPid2 = Run("C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe .\mailer.ps1 -noexit" & 'Get-ChildItem',@ScriptDir, @SW_HIDE); Starting PicMailer

    Das aufgerufene Script überwacht einen Ordner und mailt die neue Datei: Ich weiss, gibt wahrscheinlich in AI bessere Lösungen, aber denke wenn das gehen sollte ist es der einfachste Weg. Das PS Script schaut wie folgt aus:

    $Path1 soll als $folder übergeben werden, geht das ?

    lg und danke schon mal


    Chris

  • Ja, du kannst auch an PS-Scripte Parameter übergeben, sofern das PS-Script das auch unterstützt.

    Wie das im PS-Skript umgesetzt wird, weiß ich aktuell nicht und soweit ich weiß gibt es da mehrere wege, wie der Übergabe-Parameter dann aussehen muss.

    Evtl. ist es einfacher deine Funktion vom PS-Skript in autoit direkt zu bauen!?

  • ok dass muss ich wohl übersehen haben, sollte ja doch sehr einfach gehen, ging ja aus Batch schliesslich auch schon, ich denke schon dass Du recht hast und es elegantere UDFS gibt, aber auf die Schnelle, wenn man schon das PS Script hat, dann soll mir dass hier mal reichen.


    danke noch mal und eine nschönen Abend noch

  • Tja, wäre zu schön gewesen wenn dass gehen würde, hatte das PS entsprechend so angepasst:

    Dann so in AI aufgerufen:

    AutoIt
    $path1 = "\\Eintopf\c$\clips"
    
     global $CmdPid = Run("C:\Windows\System32\WindowsPowerShell\v1.0\POWERSHELL.EXE -NoProfile -ExecutionPolicy Bypass -File .\mailer.ps1 -Folder $path1 -BooleanParameter $True",@ScriptDir, @SW_SHOW); Starting PicMailer
    Code
  • Ok hab nen bisl rumgetüftelt, für die die es interessiert, so klappt die Übergabe aus Autoit

    AutoIt
    $path1 = "\\Eintopf\c$\clips"
    
    $command = @ComSpec & " /c " & "Powershell.exe" & " -NoProfile -ExecutionPolicy Bypass -File .\mailer.ps1 -Folder " & $Path1 & " -BooleanParameter $True"
     $pid = RunWait( $command, "", @SW_show)