0

想知道如何将数组作为命令行参数传递给 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”作为第四个参数传递?

4

1 回答 1

1

$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 及以后的参数。

于 2012-10-17T23:54:31.853 回答