2017-05-16 5 views
0

Ich habe einen Ordner bei C: \ Ordner, der die Dateien input.xml, output.xml und licenegenerator.exe hat. Licensegenerator.exe nimmt Variablen, die wir in input.xml eingegeben haben, und erstellt eine temporäre Lizenz für eines unserer Programme mit der Datei output.xml. Wir tun dies typischerweise über die Kommandozeile durch an den C Navigation: \ Folder-Verzeichnis, dann führen Sie den Befehl:Wie führe ich eine * .exe Datei von PowerShell

LicenseGenerator.exe "C:\Folder\input.xml" "C:\Folder\output.xml" 

Ich versuche, ein Skript zu schreiben, die genau die gleiche Sache in Powershell zu tun, aber ich bin kämpfen ... Hier ist, was ich habe:

$inputtest = "C:\Folder\Input.xml" 
$outputtest = "C:\Folder\Output.xml" 
$licensegen = "C:\Folder\LicenseGenerator.exe" 

Invoke-Command $licensegen "$inputtest" "$outputtest" 

Als ich das laufen, ich den Fehler:

 
Invoke-Command : A positional parameter cannot be found that accepts argument 
'C:\Folder\Output.xml'. 
At line:5 char:1 
+ Invoke-Command $licengegen "$inputtest" "$outputtest" 
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : InvalidArgument: (:) [Invoke-Command], ParameterBindingException 
    + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.InvokeCommandCommand 

ich auch mit Invoke-Expression versucht haben, läuft aber genau die gleiche Fehlermeldung erhalten (außer es sagt " Invoke-Expression "am Anfang". Hat jemand eine Ahnung, was ich hier falsch mache?

+0

& $ licensegen "$ inputtest" "$ outputtest" hat den Trick ersetzen. Danke euch allen! –

Antwort

2

Sie suchen nach dem call operator:

& $licensegen "$inputtest" "$outputtest" 

Invoke-Command für im wesentlichen scriptblocks auf anderen Hosts und/oder in anderen Benutzerkontexten ausgeführt wird.

1

Start-Process ist großartig, weil Sie Runas, Redirect-Ausgabe, verstecken Sie das Kind Prozesse Fenster und vieles mehr.

Start-Process -FilePath $licensegen -Argumentlist $inputtest,$outputtest

-1

& "[path] Befehl" [Argumente]

Gerade Invoke-Command mit &

Verwandte Themen