Zum Inhalt springen

Powershell Pfad Elemente korrekt escapen


Empfohlene Beiträge

Hallo,

ich versuche einen String in Powershell zusammen zu bauen, in dem ein Command-Line Pfad enthalten ist, d.h.

ein Pfad zu einer Exe (die unter Program Files liegt) und die Exe muss noch mehrere Argumente erhalten. Den Pfad erstelle ich mit Join-Path und dann mache ich eine Stringverknüpfung, leider habe ich Probleme, wenn der Pfad Leerzeichen enthält z.B. sieht mein Commando dann so aus: C:\Program Files\Program\run.exe -abcd -config"

Wie kann ich einen korrekten Pfad zu dem Programm erzeugen und dahinter die Argumente korrekt angeben und das ganze in einem String speichern, der dann das Kommando richtig maskiert enthält.

Danke

fpx

Link zu diesem Kommentar
Auf anderen Seiten teilen

was bekommst du denn für einen fehler? Was willst du denn ausführen?

http://stackoverflow.com/questions/1673967/how-to-run-exe-in-powershell-with-parameters-with-spaces-and-quotes

hier findet man nochmal eine nützliche Beschreibung und einen hilfreichen link zum parsen der posh.

Bearbeitet von SilentDemise
Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich versuche aktuell ein Invoke-Command durchzuführen. Der String enthält folgendes:


C:\Users\devJenkins\nssm.exe install devJenkins C:\Program Files\Java\jre7\bin\java.exe

Der String sieht wie folgt aus:

"$nssm install devJenkins $java"

$nssm wird vorher definiert und $java wird aus der installLocation Eigenschaft des Installationseintrages ermittelt. Wenn ich es mit & versuche auszuführen, dann erhalte ich die Meldung:

& : Die Benennung "C:\Users\devJenkins\nssm.exe install devJenkins C:\Program Files\Java\jre7\bin\java.exe"

wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder eines ausführbaren Programms erkannt.

Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad korrekt ist (sofern enthalten), und wiederholen Sie den

Vorgang.

Diese Meldung erscheint auch, wenn ich Singlequotes nehme Mach ich das Commando mittels invode:

Invoke-Command : Der Parametersatz kann mit den angegebenen benannten Parametern nicht aufgelöst werden.

Letzter Fehler ist klar, weil das Leerzeichen bei der Java-Pfadangabe als Seperator für die Parameter dient.

Bearbeitet von flashpixx
Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...