[英]Powershell - Pass an array as argument to an executable called from command line
想知道如何將數組作為命令行參數傳遞給Powershell中的exe文件? 這是我目前正在從事的工作
我正在從Powershell函數中以以下格式調用exe文件
$firstParam = "test1"
$secondParam = "test2"
$thirdParam = @()
$thirdParam = 'test3'
$thirdParam = $thirdParam + 'test4'
[void](& '..\SomeApp.exe' "$firstParam" "$secondParam" "$thirdParam"
這是我在Application.exe中看到的輸入參數
從powershell傳遞的第三個輸入參數是一個數組,但在傳遞給exe文件時被串聯(用空格隔開)。
是否可以將“ test3”作為第三個參數傳遞,並將“ test4”作為第四個參數傳遞?
$thirdParam
不能是實現的數組。 當您編寫$thirdParam = @()
,您確實聲明了一個空數組,但隨后將其重新分配給字符串: $thirdParam = 'test3'
,然后再分配給另一個字符串$thirdParam = $thirdParam + 'test4'
。 我仍然不清楚您的初衷,但是這是如何將test3
作為第三個參數,並將test4
作為第四個參數:
$fourthParam = 'test4'
[void](& '..\SomeApp.exe' "$firstParam" "$secondParam" "$thirdParam" "$fourthParam"
如果只有2個固定參數,並且可以有N個參數,請切換到Invoke-Expression
而不是Invoke-Command
:
[void](Invoke-Expression "..\SomeApp.exe $firstParam $secondParam $thirdParam"
並確保正確引用了您的參數。 在這種情況下,如果$ thirdParam包含空格,它將確定參數#4及以后。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.