为什么$dlls.Count返回单个元素?我尝试这样声明我的字符串数组:

$basePath = Split-Path $MyInvocation.MyCommand.Path

$dlls = @(
    $basePath + "\bin\debug\dll1.dll",
    $basePath + "\bin\debug\dll2.dll",
    $basePath + "\bin\debug\dll3.dll"
)

最佳答案

您应该使用类似:

$dlls = @(
    ($basePath + "\bin\debug\dll1.dll"),
    ($basePath + "\bin\debug\dll2.dll"),
    ($basePath + "\bin\debug\dll3.dll")
)

or

$dlls = @(
    $($basePath + "\bin\debug\dll1.dll"),
    $($basePath + "\bin\debug\dll2.dll"),
    $($basePath + "\bin\debug\dll3.dll")
)

如您的答案所示,分号也起作用,因为这标志着语句的结尾……将被评估,类似于使用括号。

或者,使用其他模式,例如:
$dlls = @()
$dlls += "...."

但是随后您可能想要使用ArrayList并获得性能优势...

参见PowerShell array initialization

关于arrays - 如何声明字符串数组(多行),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37758514/

10-13 00:25