Powershell 面向对象问题的输出和简易算法
函数Powershell 面向对象问题的输出和简易算法,powershell,shell,Powershell,Shell,函数-eq 0…不确定是否每隔一个文件打印一次。我不知道这些文件是如何编号的,也不知道您如何引用文件的编号。您是否将每个文件视为一个对象并对其进行编号?然后创建一个关于附加到文件中的数字的函数 这是一个相当新的概念,我已经习惯了html和css 如果你有一个更熟练的答案,我也愿意接受这个想法。你的脚本几乎可以工作 删除了dir的别名,并按要求对结果进行了排序。 Get-ChildItem的-File开关排除文件夹。我想这就是你想要的,但如果不是这样,就把它拿走 因为在foreach中获取当前位置
-eq 0…
不确定是否每隔一个文件打印一次。我不知道这些文件是如何编号的,也不知道您如何引用文件的编号。您是否将每个文件视为一个对象并对其进行编号?然后创建一个关于附加到文件中的数字的函数
这是一个相当新的概念,我已经习惯了html和css
如果你有一个更熟练的答案,我也愿意接受这个想法。你的脚本几乎可以工作 删除了dir的别名,并按要求对结果进行了排序。 Get-ChildItem的-File开关排除文件夹。我想这就是你想要的,但如果不是这样,就把它拿走 因为在foreach中获取当前位置不是一个简单的方法,所以我使用了for循环,但这是相同的想法。如果您想尝试使用foreach,可以将一个变量设置为true,然后在每次迭代中不(!)使用它
$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
}
}
如果要进一步使用此输出,强烈建议将结果写入对象而不是控制台窗口。为什么不简单地使用for循环并将索引计数器的值递增为2
$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
}
}
for ($i = 0; $i -lt $a.Count; $i += 2) {
Write-Host $a[$i].Name
}