簡體   English   中英

Powershell-將數組作為參數傳遞給從命令行調用的可執行文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM