2012-11-07 21 views

Odpowiedz

6

spróbować

Powershell -command "c:\pathtoscript\InvokeBuildscript.ps1" "z:\" "Component1,component2" 

jeśli test.ps1 jest:

$args[0].GetType() 
$args[1].gettype() 

wywołanie go z DOS Shell jak:

C:\>powershell -noprofile -command "c:\script\test.ps1" "z:" "a,b" 

Powroty:

IsPublic IsSerial Name          BaseType 
-------- -------- ----          -------- 
True  True  String         System.Object 
True  True  Object[]         System.Array 
8

Krótka odpowiedź: Więcej cudzysłowy mogą pomóc ...

załóżmy, że skrypt jest "test.ps1"

param(

    [Parameter(Mandatory=$False)] 
    [string[]] [email protected]() 

) 
$PSBoundParameters 

Załóżmy chciałby przekazać tablicy @ (123, "abc",” x, Y, z ")

w konsoli PowerShell przechodzić wiele wartości jak tablica

.\test.ps1 -input_values 123,abc,"x,y,z" 

pod poleceniem okien konsoli wiersza lub systemu Windows Ta sk Scheduler; A double-quote są zastępowane przez 3 podwójnych cudzysłowach

powershell.exe -Command .\test.ps1 -input_values 123,abc,"""x,y,z""" 

Nadzieja to może pomóc niektórym

+1

Sztuką jest, aby używać wyraźny '-command' zamiast' -file'. –

Powiązane problemy