循环的Powershell(来自c#)
我正在将我的c#程序移到Powershell,我一直在尝试转换我的for循环。我不知道如何使用这个词,但我需要在for循环中使用多个计数器变量,但我还没有弄清楚如何使用它。我在网上也找不到任何参考资料,所以我不知道这是否是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 (
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"
}