8 Stimmen

cmd.exe powershell HashTable

Gibt es in PowerShell eine Möglichkeit, eine HashTable als Argument zu übergeben, wenn sie mit cmd.exe aufgerufen wird?

Ich möchte ein Skript wie dieses aufrufen:

powershell "& 'C:\path\to\file.ps1 arg1 arg2 arg3 arg4'"

Dabei ist arg4 eine HashTable. Ist dies möglich?

14voto

Keith Hill Punkte 183005

Gegeben sei ein Skript (foo.ps1) wie dieses:

param($a1, $a2, $a3, [hashtable]$a4)

"a1 is $a1"
"a2 is $a2"
"a3 is $a3"
"a4 is "
$a4

Sie können es von cmd.exe aus wie folgt aufrufen und dabei eine Hashtabelle als vierten Parameter angeben:

C:\> powershell -command "& {c:\foo.ps1 1 2 three @{name='John';age=45}}"
a1 is 1
a2 is 2
a3 is three
a4 is

Name                           Value
----                           -----
name                           John
age                            45

0voto

mjolinor Punkte 63365

Das Einzige, was mir einfällt, ist, die Hash-Tabelle als xml zu speichern und ihr den Dateinamen zu übergeben.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X