循环的Powershell(来自c#)

循环的Powershell(来自c#),c#,loops,powershell,C#,Loops,Powershell,我正在将我的c#程序移到Powershell,我一直在尝试转换我的for循环。我不知道如何使用这个词,但我需要在for循环中使用多个计数器变量,但我还没有弄清楚如何使用它。我在网上也找不到任何参考资料,所以我不知道这是否是Powershell的限制 我的意思是, 在c#中,我有: for(int k=1,file=1,perFile=0;kPowerShell的for循环可以做到这一点,但语法可能有点笨拙 您需要在$()中为for循环的每个“部分”包装多个语句,因此它看起来像这样: for (

我正在将我的c#程序移到Powershell,我一直在尝试转换我的for循环。我不知道如何使用这个词,但我需要在for循环中使用多个计数器变量,但我还没有弄清楚如何使用它。我在网上也找不到任何参考资料,所以我不知道这是否是Powershell的限制

我的意思是, 在c#中,我有:


for(int k=1,file=1,perFile=0;kPowerShell的
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
循环完全没有任何作用吗?你知道这不是问题的关键,在这个循环中有一个嵌套的循环,但这超出了这个问题的范围。我只是想弄清楚如何在Powershell中格式化这个循环。我说了变量名并不重要。可能是这样的还不值得一提的是循环实际实现了什么。可能有一个powershell cmdlet可以实现您想要的功能,而无需直接翻译为for-loopI-do,但我想知道是否有一种更符合powershell习惯的方式来实现您所描述的功能完美,正是我所需要的。谢谢!仅供他人参考,请更改@beatles1235获得了第二个,Mathias已经为我优雅地更改了第一个。这可能会完成工作,但它肯定会变得复杂。我认为在循环之前定义
$file
$perfile
会更简单,然后将
$file++
$perfile++
放在循环的脚本块中而不是像那样嵌套子表达式。@TheMadTechnician是的,我不知道我是否真的会使用它,这有点像黑客,但它是我能想到的最接近C#的类似物。
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"
}