循环的Powershell(来自c#)



我正在将我的c#程序转移到Powershell,我一直在尝试转换我的for循环。我不知道该怎么说,但我的for循环中需要多个计数器变量,我一直不知道如何做到这一点。我在网上也找不到任何引用,所以我不知道这是否是Powershell的限制。

所以,我的意思是,在c#我有:

  for (int k = 1, file = 1, perFile = 0; k <= splitGroups; k++, file++, perFile += dtotalPerFile){
        }

当然,变量名称/类型并不重要,所以我的问题是如何将其重建到Powershell中?是否可以使用For循环?或者我需要做一段时间才能达到同样的结果。

PowerShell的for循环可以做到这一点,但语法可能有点尴尬。

您需要为$()for循环的每个"部分"包装多个语句,因此它看起来像这样:

for ( $($k = 1 ; $file = 1 ; $perFile = 0) ; $k -le $splitGroups; $( $k++ ; $file++ ; $perFile += $dtotalPerFile) ) {
    # stuff
}

for循环确实允许换行而不是分号,子表达式也允许,所以您可以稍微清理一下:

for ( 
    $(
        $k = 1 
        $file = 1
        $perFile = 0
    )
    $k -lt $splitGroups
    $(
        $k++ 
        $file++ 
        $perFile += $dtotalPerFile
    ) 
) {
    # stuff
}

不过还是有点乱。

概念的工作证明(因为我们没有您的变量):

for (
    $(
        $a = 0
        $b = 10
    )
    $a -lt 10
    $(
        $a++
        $b += 10
    )
) {
    "$a~$b"
}

最新更新