$a = dir
foreach ($file in $a)
{
if (($file.index%2 ) -eq 0)
//Hopefully this function works, supposed to
(Ideally) print every other file
{
Write-Host $file.name
}
}
函数-eq 0...
不确定是否打印出所有其他文件。我不知道文件到底是如何编号的,也不知道如何引用文件的编号。您是否将每个文件视为一个对象并对它们进行编号?然后创建一个关于附加到文件中的数字的函数?
对此还很陌生,我已经习惯了 html、css。
如果您有更熟练的答案,我也愿意接受这个想法。
最佳答案
你的脚本几乎可以运行了。
删除了 dir 的别名,并按要求对结果进行了排序。 Get-ChildItem 的 -File 开关排除文件夹。我想这就是您想要的,但否则请将其删除。
由于没有简单的方法来获取 foreach 中的当前位置,因此我使用了 for 循环,但这是相同的想法。如果您想尝试使用 foreach,您可以将一个变量设置为 true,然后在每次迭代时不(!)它。
$Path = 'C:\yourpath'
$Files = Get-ChildItem -Path $Path -File |
Sort-Object -Property 'Name' -Descending
for ($i = 0; $i -lt $Files.Count; $i++) {
if ($i % 2 -eq 0) {
Write-Host $Files[$i].Name
}
}
如果您要进一步使用此输出,强烈建议将结果写入对象而不是控制台窗口。
关于powershell - 输出和简单的算法问题面向对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64850770/